| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
Reworld,下班在家制作游戏,1500万奖金等你拿以码会友 以友辅仁
共有 1024 人关注过本帖
标题:派生类调用基类的获取私有数据成员的成员函数,为何输出错误
只看楼主 加入收藏
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
  已结贴   问题点数:20  回复次数:3   
派生类调用基类的获取私有数据成员的成员函数,为何输出错误
这里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
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:322
帖 子:6626
专家分:38330
注 册:2011-1-18
  得分:20 
为何输出错误

什么叫“输出错误”,或者说你认为应该输出什么?
2017-03-12 01:53
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
  得分:0 
回复 2楼 rjsp
原本以为派生类通过调用基类的getAprivatedData()函数能返回基类的私有数据
2017-03-12 08:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:322
帖 子:6626
专家分:38330
注 册:2011-1-18
  得分:0 
以下是引用令狐少侠56在2017-3-12 08:06:02的发言:

原本以为派生类通过调用基类的getAprivatedData()函数能返回基类的私有数据

现在不是吗?
2017-03-12 11:59
快速回复:派生类调用基类的获取私有数据成员的成员函数,为何输出错误
数据加载中...
 
   





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

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