class Class1 {
Class1() { Class2::counter++;}
}
class Class2: public Class1 {
public:
static int counter;
}
以上是我正在嘗試做的一個示例。我想在超類中使用一個子類的靜態變量,但這給了我一個編譯器錯誤,因爲Class1首先被初始化,當編譯器到達Class2 :: counter ++;它尚未初始化Class2,因此我得到「Class2尚未聲明」錯誤。我怎樣才能解決這個問題?我需要完全改變我的邏輯嗎?在超類中使用子類的靜態變量
我想我會用這個,因爲它只需要對我的代碼進行最少的更改 – JimS