派生类调用基类的获取私有数据成员的成员函数,为何输出错误
这里B继承A类的getAprivatedData()函数了,调用这个函数的时候无法输出私有数据成员。是因为基类私有数据成员对派生类对象不可见么?那为什么没有编译错误?
程序代码:
#include <iostream> #include <stdio.h> using namespace std; class A { public: A() = default; A(int); int getAprivatedData() const; private: int privatedAData; }; A::A(int a) : privatedAData(a) { } int A::getAprivatedData() const {//获取该类的公有数据 return privatedAData; } class B : public A { public: B() = default; B(int); private: int privatedBData; }; B::B(int a ) : privatedBData(a) { } int main() { A a(1); B b(4); cout << a.getAprivatedData() << endl; cout << b.getAprivatedData() << endl; return 0; }