-
子类可以赋值给父类,父类也可以指向子类;反过来则不符合逻辑原则。 例如:士兵是人,但人不都是士兵。查看全部
-
核心理解就是:访问自己类成员的时候,protected和private 的成员不能单独访问,只可以通过public下的函数对其操作访问,如work函数。 继承相当于把基类的成员在派生类里再写一次, public继承情况是“平行移植”,protected继承是将对象成员和函数都放到了子类的protected里。。。 能否访问父类当中的成员和函数 就看在自己类里面处于什么位置。 问题就回归到了访问自己类里的权限问题了。查看全部
-
访问权限查看全部
-
公有继承查看全部
-
引用和指针在函数调用时没有实例化对象,因此,效率更高。查看全部
-
1.soldier公有继承了person;在soldier中访问了person中的protected成员名字以及自己的成员年龄,并打印。实例化soldier对象后调用work函数(其实间接访问了基类person中的protected成员名字)。//基类的public、protected、private成员及成员函数都继承到了子类的相应位置,子类的成员函数可以访问自己的public、protected。private下的数据成员。 2.soldier保护继承了person;基类中的public和protected成员及成员函数都会被继承到子类中的protected下,子类实例化对象后只能访问到自己public下的成员函数,而无法访问到基类的public下的成员及成员函数(不过基类public下的数据成员被继承到子类的protected下后,是可以被子类public下的成员函数访问的)。子类public下的成员函数可以访问到自己public、protected、private下的数据成员。 3.infantry公有继承了soldier,soldier保护继承了person,实例化对象infantry后调用soldier下的work函数,实践证明,可以访问到person中的protected成员m_strName, 就是说,person里protected成员m_strName继承到了soldier的protected下,又被继承到了infantry的protected下,因此,infantry里public下的成员函数attack可以访问自己protected下的m_strName。 4.soldier私有继承person,即person的所有成员和成员函数都继承到了soldier的private下,soldier可以通过自己public下的成员函数访问到person的所有;而infantry公有继承了soldier,却无法访问到soldier下private部分,因此无法访问person的成员函数。查看全部
-
重定义解决方案~查看全部
-
处于同一层次的各基类构造函数的执行顺序取决于定义派生类时所指定的各基类顺序,与派生类构造函数中所定义的成员初始化列表的各项顺序无关。 子类的初始化有两种方法,一是通过调用父类的构造函数实现,二是直接在子类的构造函数中实现。 如果要调用父类的带参构造函数,则必须在子类的初始列表中实现;若不想调用的话,则必须在父类当中有默认构造函数;总之就是子类在实例化的时候一定会调用父类的构造函数查看全部
-
当父类 与 子类 有相同名字的 函数时 只能 进行 隐藏 隐藏父类 的该函数 如果 要调用 父类的 该函数 就 要加上 父类类名::查看全部
-
学习顺序查看全部
-
public继承查看全部
-
三种继承方式查看全部
-
父类的指针指向子类的对象,需要虚的析构函数查看全部
-
public继承方式查看全部
-
菱形继承查看全部
举报
0/150
提交
取消