我有一个从数据容器类派生的类。构造函数不能初始化容器的所有内容,所以有必要调用另一个类成员函数(提供一些额外的数据)来完成初始化。该成员函数将布尔值设置为true,表明数据已准备好进行访问。有条件地从C++中的继承类访问基类
如果数据是班上的一员,我将它设置私人/保护,我想有一个访问,如:
mycontainer& get_data() { check_macro(ready, "Data not ready"); return data; }
我怎么这样如果类是继承自mycontainer
?我可以从mycontainer
私下推导它,然后期望返回参考this
将公开吗?
你可以重构的构造,因此不会退出,直到对象被完全初始化? – NathanOliver
首先你的非构造函数初始化有些腥意,其次你的最后一句话是非常荒谬的。如果你需要任何帮助,你将不得不提供比你更好的解释。 – snb
@NathanOliver:这在我现在的情况下是可行的,我同意这是更好的风格。然而,我认为有些情况下,当它被声明时完全初始化对象是不合逻辑的,例如,存储的部分数据可能由声明时未知的非const成员计算。 – Joce