如何在派生类中初始化静态成员?

Jos*_*tez 2 c++ inheritance static

好吧,显然,我做不到.但那是我的问题.也许这是一个设计问题,我弄错了.

我希望在每个派生类中对类成员进行不同的初始化.想象一下,我有一个类型的对象Device.这Device只是应用程序代码使用的接口,因为实际设备只是两种类型中的一种,DeviceA或者DeviceB.所有设备都有一些共同的功能,例如名称.那应该是一个班级成员,不应该吗?所以我有:

class Device {
    static std::string sm_name;
}
Run Code Online (Sandbox Code Playgroud)

但每个家庭设备都有自己的名字.我怎样才能将名称初始化为每个派生类的不同值?设计错了吗?name属性不应该是类成员吗?

Ree*_*sey 5

name属性不应该是类成员吗?

每个家庭设备最有可能拥有自己的私有静态成员.您可以使用虚方法在设备实例上返回正确的名称.