C++ 继承的类对象如何使用私有数据成员?

C++ 继承的类对象如何使用私有数据成员?,c++,pointers,inheritance,private,C++,Pointers,Inheritance,Private,私有成员也被继承吗 为什么get函数能够读取变量n 包括 使用名称空间std; 阶级基础 { int n; 公众: 无效获取 { cin>>n; } 内网 { 返回n; } }; inh类:公共基础 { 公众: 无效显示 { cout基类的所有成员,私有的和公共的都是继承的,否则继承将被内在地——双关语——破坏,但它们保留私有访问修饰符 由于您的示例中的继承本身是公共的,inh将base的公共成员作为它自己的公共成员,并且a.show是完全合法的。调用访问私有数据成员的函数是可以的。私有只是意味

私有成员也被继承吗

为什么get函数能够读取变量n

包括 使用名称空间std; 阶级基础 { int n; 公众: 无效获取 { cin>>n; } 内网 { 返回n; } }; inh类:公共基础 { 公众: 无效显示 {
cout基类的所有成员,私有的和公共的都是继承的,否则继承将被内在地——双关语——破坏,但它们保留私有访问修饰符


由于您的示例中的继承本身是公共的,inh将base的公共成员作为它自己的公共成员,并且a.show是完全合法的。

调用访问私有数据成员的函数是可以的。私有只是意味着您不能访问类之外的数据成员本身。

您不能访问任何私有成员总的来说:

int main()
{
  inh a;
  a.get(); // << calling a public method of the base class. OK!
  a.show(); // calling a public method of the inh class. OK!
  return 0;
}
但是,这将导致一个主要问题:

 inh a;
 a.n = 10; // error

 base b;
 b.n = 10; // error

为什么您希望出现错误?因为私有数据成员不是继承的。您从哪里收集到的?私有数据成员不应该按照我的老师的要求继承,但当我尝试上面的代码时,它起了作用。这就是为什么我要来这里gather@Manish所有成员都是继承的,但派生类无法访问私有成员。
 inh a;
 a.n = 10; // error

 base b;
 b.n = 10; // error