gpt4 book ai didi

c++ - 无法访问类中声明的私有(private)成员

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:11:10 26 4
gpt4 key购买 nike

这是我在这里的第一个问题:)我有我的小问题..这些是我的类(class):

class Gracz{
char znak_gracza;
public:
Gracz();
Gracz(char znak){
this->znak_gracza = znak;
};
friend void multiplayer();
};
class Osoba: public Gracz{
public:
Osoba();
Osoba(char znak){
this->znak_gracza = znak;
};
friend void multiplayer();
};

我还有一个多人游戏功能,我尝试使用带参数的构造函数:

void multiplayer(){
Osoba gracz1('O');
Osoba gracz2('X');
...
}

但它不起作用。

gracz1gracz2 的错误相同

error C2248: 'Gracz::znak_gracza' : cannot access private member declared in class 'Gracz'
see declaration of 'Gracz::znak_gracza'
see declaration of 'Gracz'

最佳答案

派生类不能访问父类的私有(private)成员。您可以将它们声明为 protected (这类似于私有(private)但允许派生类访问它),但在您的情况下,由于 Gracz 提供了一种初始化变量的方法,您应该只需让 Osoba 将参数传递给 Gracz 构造函数。

Osoba(char znak)
: Gracz(znak) // initializes parent class
{}

关于c++ - 无法访问类中声明的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16814825/

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