假設我有一個基本&派生類:C++ |重用基類的保護成員
class Base{
private:
int* _privateIntPtrB;
protected:
int* _protectedIntPtrB;
public:
//methods which use
//_privateIntPtrB and _protectedIntPtrB
class Derived: public Base{
private:
int* _privateIntPtrD;
protected:
int* _protectedIntPtrB; //I am redeclaring this var
public:
//methods which use
//_privateIntPtrD and _protectedIntPtrB
我的問題: 在Derived
類的方法,並習慣的_protectedIntPtrB
派生版本? (我認爲它確實,但想確認)。
如果一個方法沒有被Derived
類重新定義,_protectedIntPtrB
的哪個版本將被一個指向Derived
類的指針使用?
我想問的原因 - 我想在Derived
類中初始化_protectedIntPtrB
類,並且希望_protectedIntPtrB
的版本在Derived類的所有實例中使用。
難道你不能只重用原來的一個,並在它的構造函數中給它賦一個不同的值嗎? – Wug 2012-07-10 14:19:23
我總是發現這類問題很難回答,儘管現在使用C++已經有十多年了。只是因爲「正確」的答案是給那些試圖這麼做的人:「我不在乎如果你這樣做會發生什麼,*不這樣做!* :-D(見Wug的評論。) – DevSolar 2012-07-10 14:20:17
它將使用Derived類中的一個,但是如果您「希望在Derived類的所有實例中使用該版本的_protectedIntPtrB」 - 是否指靜態? – 2012-07-10 14:23:17