c++基础回顾

c++继承方式

公有继承,父类的私有成员不可访问,通过父类的公有函数以及保护函数访问

私有继承,父类成员在派生类中为私有成员等。

初始化顺序先父类,再是派生类,析构刚好相反,

当用父类指针或者引用实现多态时,析构函数要声明成虚函数,不然只会调用父类的析构函数

#include <iostream>
using namespace std;
class base{
private :float x;
public :base(float a){
			cout<<"base init"<<endl;
		x=a;
	}
		virtual void fun(float a){
			cout<<"fun base"<<a<<endl;
		}

		void g(int a){
			cout<<"g  base"<<a<<endl;
		}
		~base(){
			cout<<"base detele "<<endl;
		}
};
class son :public base{
private : int s;
public :
	son(float a,int b):base(a),s(b){
		cout<<"son init"<<endl;
	}
	void fun(float a){
     cout<<"fun son"<<a<<endl;
	}
	void g(int a){
		cout<<"g  son"<<a<<endl;
	}
	~son(){
		cout<<"son delete"<<endl;
	}
};
int main(){
	float a=3.14;
	float b=2.56;
	int d=1;
	int c=8;
	base *p;
	son test1(a,d);
	base &p2= son(a,d);
	//delete p2;
	son *p1=&test1;
	p=&test1;
	p1->fun(b);
	p1->g(c);
	p->fun(b);
	p->g(a);
	p2.fun(b);
	p2.g(a);
//	getchar();
	return 0;

}

c++ 复数类以及operator 重载输入 加法,乘法

#include<iostream>
using namespace std;
class complax{
private: int real;
	 int image;
public :
	complax(){
		real=0;
		image=0;
	}
	complax(int r,int image){
		real=r;
		this->image=image;
	 }
	 void set_init(int r,int i){
		 real=r;
		 image=i;
	}
	void show(){
		cout<<real;
       if(image>=0)
		   cout<<"+"<<image<<"i"<<endl;
	   else
	   {
		   cout<<image<<"i"<<endl;

	   }
	}
	//重载+
	complax operator +(const complax &t){
		return complax(this->real+t.real,this->image+t.image);
	}
   //重载输入,只能是友元,为什么?因为cin对象为系统的对象没有this指针,不能通过对象来调用
	//只能重载为友元函数或者是类外的普通的函数
	friend istream &operator >>(istream &in,complax &a){
		int r,i;
		in>>r>>i;
		a.real=r;
		a.image=i;
		return in;
	}
	//(a+bi)(c+di)=(ac-bd)+(bc+ad)i
	friend complax operator*(const complax &a,const complax &b){
		int r;
		int i;
		r=a.real*b.real-a.image*b.image;
		i=a.image*b.real+a.real*b.image;
		return complax(r,i);
	}

};

void main(){
	complax a;
	complax b;
	a.show();
	cin>>a>>b;
	a.show();
	b.show();
	complax c=a+b;
	c.show();
	complax d=a*b;
	d.show();
}

c++基础回顾

时间: 2024-11-13 09:56:22

c++基础回顾的相关文章

【DAY26】JAVA 基础回顾

基础回顾 ---------------- 1.跨平台 os JVM : sandbox 1995 2.基本数据类型 byte //1 -128 ~ 127 short //2 -32768 - 32767 int //4 long //8 float //4 doule //8 char //2 boolean //1 3.引用类型 [] class interface 4.运算符 && //短路 || //短路 & // | // ^ //抑或,相同0,不同为1 >>

Linux基础回顾(2)——Linux系统分区二三事

问题来自Linux教材,答案自我整理难免会有不足之处.这是我Linux期末的总结 1. 一块硬盘上可以有几种类型的分区?各自可以有多少个?(各个分区能安装操作系统吗?) 硬盘分区有三种类型的分区:主分区,扩展分区,逻辑分区:一个硬盘最多能划分4个主分区,或者3个主分区加上一个扩展分区,扩展分区上可以划分多个逻辑分区(最多20个).能安装操作系统. 2.用户能否在安装过程中创建扩展分区呢? 分区工具在文件系统类型中没有提供扩展(extended)分区类型,即用户不能根据需要不能手工创建扩展分区.安

PHP移动互联网开发笔记(6)——MySQL数据库基础回顾

最近看了一些架构方面的资料,但是发现基础知识都不怎么牢固,接下来的一段时间,我会定期总结基础知识. 一.数据类型 1.整型 数据类型 存储空间 说明 取值范围 TINYINT 1字节 非常小的整数 带符号值:-128~127 无符号值:0~255 SMALLINT 2字节 较小的整数 带符号值:-32768~32767 无符号值:0~65535 MEDIUMNT 3字节 中等大小的整数 带符号值:-8388608~8388607 无符号值:0~16777215 INT 4字节 标准整数 带符号值

[C#] C# 基础回顾 - 匿名方法

C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ≥ C# 3.0 的版本中,我们会用 Lambda 表达式进行取代匿名方法,并且用 Lambda 表达式作为编写内联代码的首选方式,因为它更简洁. 匿名方法是,顾名思义,匿名方法就是没有名称的方法.匿名方法最明显的好处就是:可以降低额外另写一个方法的工作量:另外一个好处就是可以直接访问调用者的变量,

四、Android学习第四天——JAVA基础回顾(转)

(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的第四天,在程序中已经遇到了JAVA中以前不常用的一些知识点,赶紧回顾复习一下,打下基础 这里就做个简单的小结: 一.匿名内部类 匿名内部类说白了就是个没有被命名的JAVA类 在以下条件下使用匿名内部类比较适合: ①只用到该类的一个实例时 ②类在定义后被马上用到 ③类非常小(SUN推荐是在4行代码以下

spring 基础回顾 tips01

spring 属性注入时,类中必须有setter 和 getter方法. spring配置文件中: java业务类中注入DAO: private StudentDao studentDao; // 通过属性注入 public StudentDao getStudentDao() { return studentDao; } public void setStudentDao(StudentDao studentDao) { this.studentDao = studentDao; } spri

spring 基础回顾 tips02

spring注入list .set. map. properties 1.list 在xml中这样写: <property name="list"> <list> <value>Michael Huang</value> <ref bean="student"></ref> <value>110</value> </list> </property>

1、java基础回顾与加强

一.    基础回顾 1   集合 1.1  集合的类型与各自的特性 ---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList:    数组实现, 查找快, 增删慢 由于是数组实现, 在增和删的时候会牵扯到数组 增容, 以及拷贝元素. 所以慢.数组是可以直接按索引查找, 所以查找时较快 ---|LinkedList:   链表实现, 增删快, 查找慢由于链表实现, 增加时只要让前一个元素记住自己就可以, 删除时让前一个元素记住后一个元素, 后

基础回顾:get方法和set方法(类的继承多态)

基础回顾:get方法和set方法 定义类成员变量时,可以在@interface中定义,也可以在@implementation中定义: 在@interface中声明,成员变量的状态是受保护的,即“@protected”: 在@implementation中声明,成员变量的状态是私有的,即“@private” 在类的外面,是无法直接访问成员变量的,只有将成员变量修改为@public时,才可以外部访问. 使用@public时,访问成员变量使用“->”,如: time->hour=25; 但使用@pu

JavaScript 基础回顾——对象

JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中,对象被定义为无序属性的集合,属性可以是任何类型的值,包括其他对象或函数.函数作为属性值时称为“方法”,即对象的行为. (1)对象常用的内部属性 对象的内部属性是由JavaScript 规范定义的,由运行代码的系统来访问.对象常用的内部属性: prototype        对象        获