1.如果子类从父类继承时使用的继承限定符是public,那么 (1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员; (2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员; (3)父类的protected成员成为子类的protected成员,只允许子类成员访问; 2.如果子类从父类继承时使用的继承限...
public继承:原来父类的public,protected,private成员在子类里保持不变。 protected继承:原来父类的public成员在子类里变成protected的了,其余不变,所以,当别的类使用这个子类, 或者另一个类继承这个子类时候,这个子类的父类的public就不能被访问了。 private继承:原来父类所以成员在子类里都变成private的了,所以,当别...
然而,我能想出两个原因来证明使用public继承加组合比private继承更好。 第一, 你可能想使用Widget作为其他类的基类,但是你可能想阻止派生类重新定义onTick。如果Widget继承自Timer,这是不可能的,即使继承是private继承。(回忆一下Item 35,即使虚函数是private的,派生类还是可能重新定义它)但是如果WidgetTImer在Widget中...
A链接了B和C,并且使用了PUBLIC关键字,所以任何链接到A的库(包括D)也会链接B和C。 由于D链接了A,并且同样使用了PUBLIC关键字,D的任何依赖者也将链接A、B和C。 如果将PUBLIC更改为PRIVATE或INTERFACE,链接行为将相应改变: 使用PRIVATE,D将链接A,但D的依赖者不会链接A、B或C。 使用INTERFACE,D将不会链接A的实...
下面的描述中表达错误的是 A 公有继承时基类中的public成员在派生类中仍是public的 B 公有继承时基类中的private成员在派生类中仍是private的 C
class Student : public Person { }; int main(int argc, char **argv) { Student s; s.setName("zhangsan"); s.setAge(16); s.printInfo(); return 0; } 上述代码中,Student类是继承自Person类的,我们可以看到在上述所示的Student类中,并没有setName和setAge的成员函数,但是在定义的Student实例中,...
PUBLIC: 当目标自身需要此链接库,或者其他目标链接了这个目标时使用。 其他目标链接这个目标时,它们会继承这个链接库。 对于静态库,这意味着当目标被构建或者其他目标链接了这个目标时,公共依赖项会被链接。 对于共享库和可执行文件,这意味着当它们被构建或者其他目标链接了这个目标时,公共依赖项会被链接。
struct B : public A 就是为了指明是public继承,而不是用默认的private继承。 当然,到底默认是public继承还是private继承,取决于子类而不是基类。我的意思是,struct可以继承class,同样class也可以继承struct,那么默认的继承访问权限是看子类到底是用的struct还是class。如下:...
上述用通俗的话解释了一下,那么现在我们编写具体的代码来实现一下,上述中有人类,有英国人,有中国人,那么我们定义一个Human类,然后EnglishMan和Chinese都继承自Human,代码如下所示: 代码语言:txt 复制 class Human { public: void eating(void) {cout << "use hand to eat" << endl;} ...