给定这个基类:
class Employee
{
char* name;
int age;
public:
Employee(char* name);
void print();
};
关于“公众”,这有什么区别:
class Manager : public Employee
{
EmployeeList employees;
public:
Manager(char* name, Employee* people);
void print();
};
还有这个:
class Manager : Employee
{
EmployeeList employees;
public:
Manager(char* name, Employee* people);
void print();
};
最佳答案
默认是私有(private)继承。举个例子:
class B { };
class D: B { };
默认使用私有(private)继承。这意味着 D 获得了 B 拥有的所有 protected 和公共(public)字段和方法(如果我们实际上声明了任何),但不能强制转换为 B。因此,此代码失败:
void foo(B* argument) {}
foo(new D); //not allowed
如果 D 从 B 公开继承,那么 D 可以强制转换为 B,这个函数调用就可以了。
第二个区别是B中所有 protected 和公共(public)的成员都变成了D中的private成员。
这实际上是什么意思?公共(public)继承意味着 D IS_A B,但私有(private)继承意味着“实现”。从 B 继承 D 意味着你想利用 B 中的一些特性,但不是因为 D IS_A B 或者因为 B 和 D 之间存在任何概念上的联系。:D
关于c++ - 在派生类声明中使用 "Public"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563765/