我想創建幾個類,這些類都是派生類從抽象類(讓我們叫它)BaseClass。在BaseClass中,我想操作靜態在派生類中聲明的變量(數組)。在C++中有一個聰明的方法讓編譯器知道靜態變量將在派生類中聲明嗎?或者,例如,我應該在我的派生類的構造函數中傳遞一個對基類構造的靜態變量的引用?這是我的想法:在基類中使用靜態數組的C++,在派生類中聲明
class BaseClass
{
std::vector<float> &vector;
public:
BaseClass(std::vector<float> &dVector):vector(dVector){};
void vectorOperation()
{
vector.doSomething();
}
...
}
class DerivedClass : public BaseClass
{
static std::vector<float> sVector;
DerivedClass():BaseClass(sVector){};
...
}
我的解決方案是否正確?有沒有更好的方法來做到這一點?
Sry,剛纔注意到它是靜態的。我可以使用CRTP。 – WhozCraig 2014-12-03 21:52:32
命名當然不是最好的選擇:'std :: vector&vector;'應該是s.th.像'std :: vector &vector_;'至少。 –
2014-12-03 21:53:33
您的解決方案看起來簡單,優雅和高效,以達到您所描述的目的。 – Christophe 2014-12-03 22:04:26