public:子类继承,子类亦可以访问。本类函数可以访问,本类对象可以访问。
private:子类继承,子类不可访问。本类(所有)函数以及友员函数可以访问,本类对象不可以访问。
protect:子类继承,子类可以访问。本类函数可以访问,本类对象不可以访问。
friend:子类不继承,子类不可以访问。本类函数可以使用friend函数。友员函数定义也不一样,算外部函数。
另外构造函数、静态成员(函数\变量)均不继承。
总的说,父类有的(包括public、private,protect,除这些以外不算)我子类通通有,只是能不能用的问题。
虚函数(实现多态)
例子说明:
父类 a=new 子类;
a.foo();执行子类的foo
父类 b=new 父类;
b.foo();执行父类foo
虚函数在父类定义后,子类也必须有这个虚函数的定义。
一个函数在基类申明一个virtual,那么在所有的派生类都是是virtual的
纯虚函数(声明时分号前有个“=0”),当该类中有任何一个纯虚函数时,该类为抽象类。在申明纯虚函数类中不能实现。该函数抽象类不能实例化,所以抽象类只能以指针方式被应用。
静态成员使用static 申明,在内存中永远只有一份实例,静态成员变量可以被成员函数访问,但静态成员函数只能访问静态成员变量
收藏于 2011-10-07
来自于百度空间