2017-06-01 81 views
0

正如标题所说,我无法从我的主文件访问基类的公共成员变量。无法访问的基类公共成员变量

Entity.h:14:10: error: 'char Entity::character' is inaccessible

entity.h:

#include "Vector2.h" 
#include <Windows.h> 

class Entity { 
public: 
    Entity(char character, WORD color, Vector2<int> pos); 

    Vector2<int> pos; 
    Vector2<int> vel; 

    char character; 
    WORD color; 
}; 

player.h:

#include "Entity.h" 

class Player : Entity { 
public: 
    Player(int lives, char character, WORD color, Vector2<int> pos); 

    int lives; 
    int points; 
}; 

构造函数调用主:

int main(){ 
    Player player(0, 'C', FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY, playerSpawn); 
    char c = player.character; // error here 
    return 0; 
} 

有什么建议?

+0

请注意,单词[属性](http://en.cppreference.com/w/cpp/language/attributes)可能不应该用于描述成员变量。 – Default

+0

我移动了你的代码,希望能够让它看起来更清晰一些。如果您觉得我违反或摧毁了某些东西,请随时[编辑](https://stackoverflow.com/posts/44301405/edit)! – Default

回答

8

继承访问的默认级别是私有的,所以Player在私下继承实体。

如果您想公开访问,请在公共类的前面加上public。

class Player : public Entity { 
... 
}; 
+0

*“继承的默认访问级别是私有的”* - 使用'class'关键字时。 – StoryTeller