嗯,显然,我不能。但那是我的问题。也许这是一个设计问题,我把整件事都弄错了。
我希望在每个派生类中对一个类成员进行不同的初始化。假设我有一个 Device
类型的对象。此 Device
只是应用程序代码使用的接口(interface),因为实际设备只是两种类型之一,DeviceA
或 DeviceB
。所有设备都有一些共同的特征,例如名称。那应该是类(class)成员,不是吗?所以我会:
class Device {
static std::string sm_name;
}
但是每个家庭设备都有自己的名字。 如何为每个派生类将名称初始化为不同的值?设计有误吗? name 属性不应该是类成员吗?
最佳答案
Should the name property not be a class member?
每个家庭设备很可能应该有自己的私有(private)静态成员。您可以使用虚拟方法在设备实例上返回正确的名称。
关于c++ - 如何在派生类中初始化静态成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5540816/