-
public不写默认private继承???查看全部
-
多继承:农民工查看全部
-
多重继承和多继承的关系:多继承是一个子类继承多个父类。多重继承是一个子类的父类也是继承的子类。查看全部
-
定义两个类,基类是人类,定义数据成员姓名(name),及成员函数void attack()。 士兵类从人类派生,定义与人类同名的数据成员姓名(name)和成员函数void attack()。 通过对同名数据成员及成员函数的访问理解成员隐藏的概念及访问数据的方法。查看全部
-
什么时候使用虚析构函数??查看全部
-
当父类对象是从子类得来的,在销毁父类对象时,会只调用父类的析构函数,这会使子类对象没有销毁,导致内存泄露,解决方法是:将父类的析构函数定义为虚析构函数,从而继承到子类的析构函数上,在销毁时能先销毁子类对象再销毁父类对象。(即在父类和子类的虚构函数前都加virtual) 父类中定义了虚析构函数,也被继承到子类中,即使子类的析构函数没用virtual关键字修饰,也相当于是虚析构函数。查看全部
-
派生类的对象可以赋值给基类(子类对象可以赋值给父类),可以用基类对象的指针指向派生类对象 当将子类对象用于初始化父类对象时,其与父类相同的数据成员将被复制到父类对象的存储空间,而其特有的数据成员将被舍弃,因为父类没有这些数据成员,无法接收。 基类的指针可以指向派生类的对象,基类的对象可以接收派生类的对象。查看全部
-
隐藏: 子类与父类的函数同名,即使参数不同,也不能形成重载,只能形成隐藏(直接调用是用子类函数)。父类函数只能用:父类名::函数名 。 覆盖: 子类虚函数表中的指针值在子类没有虚函数A的时候储存的是父类的虚函数A的地址,而子类有了虚函数A后储存的就是子类虚函数的地址了,覆盖了之前父类A的地址。 不论子类与父类同名的函数是否参数相同,都只能是隐藏关系,而不能是重载,要调用父类的同名函数仍需:父类名::函数名 子类重写父类的方法,跟方法名称有关,跟参数没有关系,只能隐藏,不能重载查看全部
-
子类成员函数中,访问与父类同名的数据成员方法:父类名::数据成员名 同名的数据成员也具有隐藏的特征。 当实例化子类对象时,对于子类与父类同名的成员函数,只能访问到子类的,父类的同名函数相当于被隐藏了。但可以通过一定手段访问到父类的同名函数。查看全部
-
私有继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。 保护继承时基类中各成员属性均变为protected,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。查看全部
-
公有继承 class A:public B 保护继承 class A:protected B 私有继承 class A:private B 公有继承时基类中各成员属性保持不变,基类中private成员被隐藏。 派生类的成员只能访问基类中的public/protected成员,不能访问private成员; 派生类的对象只能访问基类中的public成员。 保护继承时基类中各成员属性均变为protected,且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,不能访问private成员;派生类的对象不能访问基类中的任何的成员。 私有继承时基类中各成员属性均变为private,且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,不能访问private成员 派生类的对象不能访问基类中的任何的成员。查看全部
-
私有继承从本质上说是一种 has a 的关系(包含关系)查看全部
-
私有继承private查看全部
-
保护继承protected查看全部
-
基类访问属性在public继承方式下,派生类成员访问属性 protected :禁止外部访问,允许派生类访问 private:禁止外部类访问,禁止派生类访问查看全部
举报
0/150
提交
取消