一.引用
(1)必须初始化
(2)不能改变指向
(3)普通使用时,不能用常量或临时值来进行初始化
注意:引用与指针的区别
1.不存在空引用,引用必须连接到一块合法的内存。指针可以是空指针。
2.一旦引用被初始化为一个对象,就不能被指向到另一个对象。 指针可以在任何时候指向到另一个对象。
3. 引用必须在创建时被初始化。指针可以在任何时间被赋值。
二.访问权限
public:公有权限 程序的任何位置都可以使用
protected:受保护的,派生类和类的内部使用。什么叫派生类?等讲完继承才能用。
private:私有的,只有类的内部可以使用。
三.函数
1. 构造函数
(1)在创建对象时会自动调用的函数,主要作用是在创建对象时初始化对象,为对象的成员变量赋值.
(2)特点:a.名字必须与类同名 无返回值 可能有参数
b.访问权限一般是public,一旦私有构造函数,那么在类的外部将不能创建对象。
c.用户不能调用构造函数 只有在类对象创建时 自动调用
d.实例化对象时,只用到一个构造函数
(3)显式和隐式
a.默认构造函数,当没有显式的定义构造函数时,系统会自动生成一个默认构造函数.
b.没有参数也没有逻辑;仅仅为了有构造函数而存在。
c.一旦显式的定义了构造函数,将不会生成默认构造函数.
(4).构造函数的初始化列表
格式:成员变量名(初始值)
注意:
初始化成员列表的顺序应该和成员声明的顺序保持一致,不建议使用成员初始化其他成员
成员的初始化顺序,是按照声明的顺序进行,和初始化列表的顺序没有关系。
2.this指针
(1)是一个指针,指向对象本身
(2)this只能在类的内部使用
(3)可以声明,不能创建对象
3.拷贝构造函数
(1)使用一个对象初始化另一个对象的时候调用拷贝构造,拷贝构造函数的参数列表必须是 const 类名 &对象名。
(2)默认拷贝构造函数:a.将成员变量逐个赋值
b.有显示的,不会调用默认拷贝
(3)拷贝构造函数调用的三种情况:
a.程序中需要创建一个新对象 并用另一个同类的对象对它初始化
b.当函数的参数为类的对象时,是调用拷贝构造函数,引用的时候不调用拷贝构造,因为指向的是同一个对象。
c.函数的返回值为类对象;如果返回是栈对象,不调用拷贝构造;返回的是堆对象,调用拷贝构造。
(4)私有构造函数:不能在类的外部创建对象
私有拷贝构造函数:不能在类的外部复制对象