我的课程MyClass
主要基于一位成员Attribute
。将可选成员Optional1
和Optional2
实现到类定义中的最佳可能性是什么。我们的想法是,在某些情况下,有关MyClass
- 对象的更多信息应添加到其中。
class MyClass {
private:
double Attribute;
//double Optional1; //that's what I want to implement
//double Optional2; //that's what I want to implement
public:
MyClass(Attribute);
void setAttribute(double);
//void setOptional1(double);
//...
};
我认为类中没有类似真正可选的成员,所以我可能不得不在构造函数中处理默认值。像
这样的东西MyClass(Attribute, Optional1 = -1, Optional2 = -1)
如果在正常情况下从未设置-1
,我确定Optional1
和/或Optional2
"未设置"。如果它与-1不同,我知道它有一个意图值。
然而,这种方法似乎有点难看,我想知道是否有更好的方法。
答案 0 :(得分:2)
如果它是运行时可选项或bool模板参数(如果它是编译时可选的),您可能正在搜索std::optional<>
。但是,首先要验证你的设计:我们是在讨论同一个类而不是类层次结构吗?