如果我在基类中声明了几个变量,它们将在每个派生类中定义,对吧?我只想在所有派生类中为基类提供一次变量。例如:如何在基类中初始化唯一变量(继承)
class Base{
public:
virtual ~Base();
protected:
Base();
int fileIndex;
};
class DerivedA : public Base{
public:
DerivedA();
virtual ~DerivedA();
void DoSth(); //using fileIndex
};
class DerivedB : public Base{
public:
DerivedB();
virtual ~DerivedB();
void DoSthDifferent(); //using the same fileIndex
};
我该怎么做?
你已经做到了!可能的副本:[私人和受保护的成员](http://stackoverflow.com/q/224966/514235) – iammilind
当你说你想让所有派生类使用相同的fileIndex时,你的实际意思是什么。到目前为止所有的答案都理解它意味着所有的基础,无论它们是否使用继承,都应该使用相同的底层文件索引值。 但似乎你的例子过于复杂的解释。 –
是的,你的意思是你只想在基础中定义这些成员一次,但在每个实例中存储单独的副本(包括派生类 - 标准继承),或者你希望所有实例共享相同的成员('static' )?我建议遵循以下标志说明:_“请澄清您的具体问题或添加其他详细信息以突出显示您所需的内容。由于它目前已写入,因此很难确切地告诉您所要求的内容。请参阅如何寻求帮助以澄清问题这个问题。“_ –