【发布时间】:2020-07-25 19:19:44
【问题描述】:
我有一些可以设置或不设置的类:
Class obj;
我希望它的值在逻辑中使用时返回是否已设置:
if ( obj )
obj.Clear();
if ( !obj )
obj.Set( "foo" );
我想添加一个到 bool 的隐式转换,但我想知道是否需要 int 或者是否有更好的方法来解决这个问题。
【问题讨论】:
-
能否添加
HasValue()之类的方法,或者重载!操作符? -
if(obj)将始终为真,除非obj为空。我建议添加一个方法并调用它来检查对象的状态。 -
@rhughes 我现在有 IsSet(),我想这就是你的想法。
-
std::optional<T>可能就是您要找的。span>
标签: c++ oop c++11 operator-overloading