这是一个好的模式吗?
BaseClass {
protected:
Data m_data;
public:
Interesting public_method() {
//returns something interesting about m_data
//what exactly depends on what the subclass put into m_data
}
}
DerivedClass {
public:
DerivedClass() { //properly populate m_data }
}
这样做的缺点是事情太“松散”并且没有在编译时强制执行,因为子类程序员只是被告知做某事,而不是真的被迫去做,所以我想知道这是否被经验丰富的 c++ 编码人员认为是好的做法。
有什么好的出路或更好的方法吗?
如果只有超类构造函数可以在子类构造函数完成其工作后被强制调用。然后超类构造函数中可以包含所需的参数
c++ 不允许这样做:(