我在尝试实现一个包含指向布尔值的指针的类时遇到了问题...
class BoolHolder {
public:
BoolHolder(bool* _state);
bool* state;
}
BoolHolder::BoolHolder(bool* _state) {
state = _state;
}
bool testbool = false;
BoolHolder testbool_holder( &testbool );
如果我这样做,testbool_holder.state总是报告它是true,不管testbool本身是true还是false。
我做错了什么?我只想让这个类能够维护testbool的最新值,但我不知道如何实现。谢谢。
state
将始终是非空指针,因此测试为true
;您需要使用*state
。 - Alan Stokesstd::unique_ptr
。例如,创建它可以这样做:std::unique_ptr<bool> testbool_holder{new bool{false}};
,测试它可以这样做:if (*testbool_holder)
。 - Some programmer dude