假设我有一个基本&派生类: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