我有一个带有静态变量的类层次结构:
class Shape{
public:
static string name;
}
class Rectangle: public Shape{
}
我想name
根据班级来设置。所以Shape::name
应该是“形状”,Rectangle::name
应该是“矩形”
我所做的是初始化每个 .cpp 实现文件中的静态变量。所以在 Shape.cpp 中:
string Shape::name = "Shape";
在 Rectangle.cpp 中:
string Shape::name = "Rectangle";
链接器不喜欢这样,并抱怨有重复的符号。那么我该如何实现呢?
注意:我想坚持使用带有初始化列表的构造函数(.cpp 中没有实现)