从成员变量指针返回布尔值
returning bool from member variable pointer
所以我正在使用如下所示的代码:
class SomeClass : public SomeBaseClass {
SomePointerToClass * p;
public:
SomeClass(SomePointerToClass* p = NULL) : p(p) {};
void start(SomePointerToClass* sp) {
p = sp;
}
bool hasStarted() {
return p;
}
}
我简化了一些东西,以便我可以制作一个简短的代码示例,但我认为从成员变量指针返回布尔值有点像代码。我应该改变它还是某种形式的C++惯例?
hasStarted()
很好:在C++中,指针将在零/非零的基础上自动转换为bool
。†
有些人更喜欢写return (p != nullptr)
或return static_cast<bool>(p)
,以便真正明确意图,但在这种情况下,我对此并不大惊小怪。
† 但是,该行为是用 C 语言实现定义的,所以不要在那里依赖它!
bool hasStarted () { return (bool) p; }
这清楚地表明"我打算这样做",而且我想说,这是一件非常合理的事情。
我有时会在可以访问指针 p 的函数中执行此操作:
if (p) ... //meaning: if p isn't NULL...
但共识是我不应该提到返回指针 - 我确信这里的共识是正确的。 所以编辑。
相关文章:
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 如何使用返回布尔值的函数?
- 返回布尔值在 cocos2dx 的 onTouchBegan() 中是什么意思?
- 在开关情况下返回布尔值
- 让二传手返回布尔值是好习惯吗?
- 从 lambda 表达式返回布尔值时出错
- 在 if 语句中返回布尔值的 lambda 表达式
- Windows HANDLE RAII 管理,如果返回布尔值而不是句柄怎么办?
- 读者班级游戏板:正确返回布尔值
- 试图返回布尔值时,程序崩溃
- 如何使用 boost::bind 将返回 int 的函数转换为返回布尔值的函数
- 返回布尔值的函数的命名约定是什么
- 函数返回布尔值,只设置整个寄存器的1个字节
- 返回布尔值时,为什么要使用"!!
- 从成员变量指针返回布尔值
- 从 Circle 类返回布尔值 C++
- 返回布尔值
- C++如何使用返回布尔值的函数来确定素数
- 让函数返回布尔值和地址?C++
- 不让我返回布尔值给函数