なぐも かすみ 2022-03-16 17:36 采纳率: 62.5%
浏览 34

关于子类调用父类成员的this指针问题

#include <iostream>
using namespace std;

class A
{
public:
    A()
    {
        a = 10;
    }
    void show()
    {
        cout << a;
    }

private:
    int a;
};
class B : public A
{
public:
    B()
    {
        a = 100;
    }
private:
    int a;
};
int main()
{
    B p;
    p.show();
    return 0;
}

我以为输出的是B中的a=100,结果输出的是A中的a=10; 但是我觉得在调用show()函数时候传入的是B中的this,而且我记得在B中想访问A中的重名变量得加访问域A::才行吧。 所以为什么输出10呢?

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-03-16 17:45
    关注

    当然是输出基类中的a了,基类不可能认识子类的a变量啊,而且还是私有的

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月16日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题