gpt4 book ai didi

c++ - 在 C++ 中访问派生类变量?

转载 作者:行者123 更新时间:2023-11-30 03:08:55 25 4
gpt4 key购买 nike

我正在尝试访问派生类中的变量。

     printf("%c", God.m_Please.me);

在 God 类声明中,我已将 m_Please 声明为

     private:
Please *m_Please

helpme 是在派生自 Please 的类中声明的变量

    class Help : public Please

而我被定义为

    unsigned char me[1000];

当我尝试编译时出现错误

error C2228: left of '.me' must have class/struct/union type

我正在使用 Visual Studio 6.0

请回复....

orward declare "class Please;"在上帝面前——wqking这有助于消除第一个错误 :) 但我仍然遇到其他 2 个错误

谢谢,

最佳答案

Please* Please私有(private)的。您不能从派生类访问私有(private)成员。它必须受到保护

class Please{
protected:
Please* m_Please;
int pplHelped;
};

class Help : public Please {

void whatever(){
//assume m_Please was initialized elsewhere
Please::m_Please->pplHelped; //do something with pplHelped
}
};

如果您试图通过派生类的实例访问基成员变量,则应在基类中将其声明为public

class Please{
public:
Please* m_Please; //init this somewhere
int pplHelped;
};

class Help : public Please{
};

void somefunc(){
Help God;
//assume m_Please was initialized in Constructor
printf("%d\n", God.m_Please->pplHelped;
}

关于c++ - 在 C++ 中访问派生类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4508053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com