-
私有继承(private)
查看全部 -
保护继承(protected)
查看全部 -
公有继承(public) 访问限定符
查看全部 -
使用public继承时,protected里的也会继承到protected里
查看全部 -
继承的关系
查看全部 -
基类到派生类的继承关系:
公有继承(public)
保护继承(protected)
私有继承(private)
多重继承,多继承,虚继承
查看全部 -
is a:代表的是类之间的继承关系
has a:代表的是对象和它的成员的从属关系。c++还有另一种实现has-a关系的途径----私有继承。使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员。这意味着基类方法将不会成为派生对象公有接口的一部分,但可以在派生类的成员函数中使用它们。
使用公有继承,基类的公有方法将成为派生类的公有方法。简而言之,派生类将继承基类的接口,这是is-a关系的一部分。使用私有继承,基类的公有方法将成为派生类的私有方法。简而言之,派生类不能继承基类的接口。正如从被包含对象中看到的,这种不完全继承是has-a关系的一部分。
因此私有继承提供的特性与包含相同:获得实现,但不获得接口。所以,私有继承也可以用来实现has-a关系。查看全部 -
视频时间段:1:49-4:18
私有继承与对象成员(一个类的对象作为另一个类的数据成员)例子相似
对象成员例子中,线段类中的数据成员有两个坐标类的对象m_coorA和m_coorB,线段类只能访问到m_coorA和m_coorB这两个对象的公有数据成员和公有成员函数
私有继承中,子类的对象也只能访问父类的公有数据成员和公有成员函数
所以以上两个例子很相似
对象成员例子中:线段和坐标的这种关系,称为has a的关系(线段中有一个坐标,是一种包含关系)
私有继承中也是has a的关系,子类的对象中包含一个父类的对象,因为只能访问父类中的公有数据成员和公有成员函数
查看全部 -
当对象做完实参传递给形参时(非指针引用)则调用拷贝构造函数。而这节课里面的源码没有拷贝构造函数,所以调用系统默认拷贝构造函数,并无输出。
test(person p):调用时会产生一个临时对象,并会执行析构函数(可能有拷贝构造函数)
test(person *p):不会产生临时的对象
test(person &p):不会产生临时的对象
所以采用指针和引用的执行速度更快
查看全部 -
实例化子类时,会先调用父类的构造函数,再调用子类自己的构造函数。 析构时,先调用自己析构的函数,再调用父类的析构函数。查看全部
-
继承分为公有继承,保护继承,私有继承查看全部
-
私有继承 访问限定符<br />查看全部
-
保护继承 访问限定符
查看全部 -
共有继承 访问限定符
查看全部 -
多个文件里包含同一个头文件,会报错重定义,此时用#ifdef 全大写#define 全大写,最后跟#endif
查看全部
举报