这是我在这里的第一个问题:)
我有一点问题。
这些是我的类(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'

最佳答案

构造函数需要将参数传递给基类构造函数:

class Osoba: public Gracz{
public:
    //...
    Osoba(char znak) :
    Gracz(znak) {
    }

};

10-08 14:51