我是c ++的新手。我曾经认为派生类不会继承超类私有数据成员和成员函数。但是最近我看到了一个程序,其中可以通过其公共成员函数访问超类的私有成员。如果派生类没有私有数据成员,怎么可能呢?如果我错了,请清楚我的概念。
答案 0 :(得分:1)
过去认为派生类不会继承超类私有数据成员和成员函数。
你的理解有点不妥。
私有成员仍然存在于基类中。派生类根本无法直接访问它们。
答案 1 :(得分:1)
当其他类的私有数据成员设置为私有时,无法访问这些成员。
但是使用返回函数,子类可以从父类中检索私有数据成员。
实施例
class Parent{
int age = 35;
public int getAge(){
return age;
}
}
class Child : public Parent{
}
int main(){
Child c;
printf("%d", c.getAge());
return 0;
}
输出
35