我有一个存储一些数据的类。 问题是施工时没有数据。
重要说明:这些类适用于具有只读类的SDK(仅限getter)。 这些类仅存储来自在线API的数据。
当数据可用时,我应该使用指针并创建(分配)对象吗? 这将需要一个构造函数,当数据无效或构造函数在某些时候失败时抛出异常。
或者我应该为对象定义默认构造函数并实现一个初始化类成员的update / init函数。 这个解决方案会产生问题,我有一个“僵尸”对象,直到调用更新函数。 第二个问题是你可能忘记调用update / init函数 - >导致第一个问题。
答案 0 :(得分:0)
根据CPP核心指南(http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines):
C.41:构造函数应该创建一个完全初始化的对象
原因构造函数为类建立不变量。班级的用户 应该能够假设构造的对象是可用的。
异常如果a不能方便地构造有效对象 构造函数,使用工厂函数
接下来是:
C.42:如果构造函数无法构造有效对象,则抛出一个 例外情况
原因留下一个无效的对象是要求 麻烦。
。