标题:派生类调用基类的获取私有数据成员的成员函数,为何输出错误
取消只看楼主
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
已结贴  问题点数:20 回复次数:1 
派生类调用基类的获取私有数据成员的成员函数,为何输出错误
这里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;
}
2017-03-11 22:18
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
得分:0 
回复 2楼 rjsp
原本以为派生类通过调用基类的getAprivatedData()函数能返回基类的私有数据
2017-03-12 08:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-474972-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085256 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved