/* 12_25
note :
1.私有成员(private)和受保护成员(protected)不能直接使用成员访问符(.)
2.拷贝构造函数:是一种特殊的构造函数,他在建立对象的时候使用同一类中以前建立的对象来初始化新建立的对象
3.友元函数:能够访问类的private和protected成员
4.内联函数:经过内联函数编译器试图在调用函数的地方扩展函数体中的代码
5.this指针:每一个对象都有个特殊的指针this,它指向对象的自己
6. :: 能够不跟类名表示全局数据或全局函数(非成员函数)
7.在类定义中定义的成员函数把函数声明为内联的即使没使用inline关键字
8.成员和类的默认访问修饰符是private
9.public: 公有成员在程序中类的外部是可访问的(类名.成员)
10.private: 不能够用(类名.成员)访问,能够在类成员函数中访问或者友元函数中访问
11.protected: 和 private相似可是能够在派生类中的成员函数中被访问
12.继承 :
改变后的访问权限是对于派生类而言
public : 基类的成员访问权限不变
protected: 基类的成员访问权限public->protected 其他两个不变
private: 所有变成private(默认是这样继承的)
可是不管哪一种方式继承有两点永远不变:
1.原来private成员只能被本类成员或者友元访问,不能被派生类访问
2.原来protected成员仍然可被派生类访问
13.类的列表初始化:只针对类的基类和非静态数据成员(继承的成员不算)
如:Animal::Animal():type("dog"){} = Animal::Animal(){ type="dog" }
注意:列表初始化是根据类里面成员变量声明顺序来作初始化顺序的
14.构造函数,每次建立类的新对象的时候时执行,不返回类型
15.析构函数,每次删除所建立的的对象的时候执行,不返回类型和没有参数
*/函数