类的成员函数内部,可以访问:
当前对象的全部属性,函数
同类其他对象的全部属性,函数
类的成员函数以外:
只能访问该类对象的公有成员
构造函数:名字与类名相同,可以有参数,不能有返回值
默认无参构造函数:用户没有定义构造函数时自动创建
复制构造函数:(拷贝构造函数)只有一个参数,即同类对象的引用X::X(X&)或者X::X(const X &)
默认复制构造函数:没有定义复制构造函数时,编译器生成默认复制构造函数,如果定义了,则默认的复制构造函数不存在。
类型转换构造函数:实现类型的自动转换,只有一个参数,不是复制构造函数
析构函数:没有参数和返回值,一个类只有一个析构函数
友元函数或友元类:可以访问该类的私有成员
private:只能由1.该类中的函数、2.其友元函数访问。
不能被任何其他访问,该类的对象也不能访问。
protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。
但不能被该类的对象访问。
public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。
多态:
一种表现形式:
派生类的指针可以赋值给基类指针。
通过基类指针调用基类和派生类的同名虚函数时:
若该指针指向一个基类的对象,那么被调用的是基类的虚函数
若该指针指向一个派生类的对象,那么被调用的是派生类的虚函数。
第二种表现形式:
派生类的对象可以赋值给基类引用。
通过基类引用调用基类和派生类中的同名虚函数时
若该引用引用的是一个基类的对象,那么被调用的是基类的虚函数。
若该引用引用的是一个派生类的对象,那么被调用的是派生类的虚函数