如果我有例如两个类A和B,这样的类B继承A,如下所示:
class B: public A
在这种情况下,我正在做public继承.
如果我按如下方式编写前面的代码:
class B: A
我将在这里做什么类型的继承(即公共)?换句话说,什么是默认访问说明符?
这里只是一个问题.我是否拨打上一行代码statements?特别是我记得我在C++中读到了没有恐惧:一本初学者的指南,让你觉得这本书就是statements最好的;.你觉得怎么样?
谢谢.
ana*_*lyg 89
只是对所有现有答案的一小部分:继承的默认类型取决于继承类型(B),而不是继承的类型(A).例如:
class A {};
struct B: /* public */ A {};
Run Code Online (Sandbox Code Playgroud)
小智 7
当您从另一个类继承一个类时(在本例中为继承class Base自class Derived),则默认访问说明符为private。
#include <stdio.h>
class Base {
public:
int x;
};
class Derived : Base { }; // is equilalent to class Derived : private Base {}
int main()
{
Derived d;
d.x = 20; // compiler error becuase inheritance is private
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当您从结构继承类时(在本例中为继承class Base自struct Derived),则默认访问说明符为public。
#include < stdio.h >
class Base {
public:
int x;
};
struct Derived: Base {}; // is equilalent to struct Derived : public Base {}
int main() {
Derived d;
d.x = 20; // works fine becuase inheritance is public
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)