【发布时间】:2020-06-08 17:49:03
【问题描述】:
所以,我的问题是我想从派生类修改我的父类 Board,使其适用于派生类的所有其他对象。前任。如果我在 player[1] 的 getTest() 上输入 3,则 player[2] 将能够打印相同的值。这可能吗?
class Board {
public:
int test;
virtual void getTest() = 0;
};
class Player : public Board{
public:
int playerNum;
Player(int _playerNum){
playerNum = _playerNum;
}
void printTest(){
cout << "The value of test is: " << Board::test;
}
void getTest(){
cin >> Board::test;
}
};
int main(){
Player players[] = {1,2};
players[1].getTest();
players[0].printTest();
return 0;
}
【问题讨论】:
-
Board::test应该声明为static如果它的状态应该在所有类之间共享 -
将
test设为静态变量。 -
我会小心推荐
static作为首选。static将共享 所有实例,无处不在 的状态——这在设计方面不是很好。 -
但这似乎是所要求的,不是吗?
-
确实如此,但在得到你想要的东西和得到你需要的东西之间通常会有很大的不同。
标签: c++ class inheritance