-
公有继承时
public和protected会被派生类继承
private无法访问
protected在没有继承时和private基本一样
查看全部 -
class 派生类:public 基类
{
派生类特有的内容:
};
查看全部 -
父类指针与子类对象
查看全部 -
派生类对象可以赋值给基类
查看全部 -
子类与父类的函数同名不同参,父类的同名函数依旧会被隐藏
查看全部 -
私有继承(private)
查看全部 -
保护继承(protected)
查看全部 -
公有继承(public)
查看全部 -
基类到派生类的继承关系:
公有继承(public)
保护继承(protected)
私有继承(private)
多重继承,多继承,虚继承
查看全部 -
基类的私有成员只能通过基类的公有函数成员来访问
查看全部 -
公有继承: 基类的公有成员仍然为公有成员,可以有派生类成员函数和派生类对象直接访问。 基类的私有成员在派生类中无论是派生类的成员还是派生类的对象都无法直接访问。 保护成员在派生类中仍然为保护成员,可以通过派生类的成员函数访问,但不能通过派生类的对象访问。 私有继承: 基类的公有和保护成员都被继承为派生类的私有成员,派生类的成员函数可以直接访问。 基类的私有成员不可直接访问,无论是派生类的成员还是派生类的对象都无法访问。 保护继承: 基类的公有和保护成员都被继承为派生类的保护成员,派生类的成员函数可以直接访问基类的公有和保护成员 基类的私有成员在派生类中不能直接被访问
查看全部 -
申请:类的子成员对象的构造函数(顺序)->类的构造函数 释放:类的析构函数->类子成员对象的构造函数(倒序) 申请:基类的成员对象的构造函数(顺序)->基类的构造函数->子类的成员对象的构造函数(顺序)->子类的构造函数 释放:子类的析构函数->子类成员对象的析构函数->基类的析构函数->基类成员对象的析构函数
查看全部 -
当对象做完实参传递给形参时(非指针引用)则调用拷贝构造函数。而这节课里面的源码没有拷贝构造函数,所以调用系统默认拷贝构造函数,并无输出。
test(person p):调用时会产生一个临时对象,并会执行析构函数(可能有拷贝构造函数) test(person *p):不会产生临时的对象 test(person &p):不会产生临时的对象 所以采用指针和引用的执行速度更快
查看全部 -
父类的指针只能访问自己的成员函数和数据成员,用->访问,无法访问子类的数据成员和成员函数。
查看全部 -
父类的指针只能访问父类的数据成员和成员函数,不能访问子类独有的数据成员以及成员函数。
虚析构函数是为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象。
如果某个类不包含虚函数,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使析构函数为虚一般是个坏主意。因为它会为类增加一个虚函数表,使得对象的体积翻倍,还有可能降低其可移植性。
所以基本的一条是:无故的声明虚析构函数和永远不去声明一样是错误的。实际上,很多人这样总结:当且仅当类里包含至少一个虚函数的时候才去声明虚析构函数。
抽象类是准备被用做基类的,基类必须要有一个虚析构函数,纯虚函数会产生抽象类,所以方法很简单:在想要成为抽象类的类里声明一个纯虚析构函数。
查看全部
举报