我有问题想实现它包含一个指向布尔类...C++指针布尔值
class BoolHolder {
public:
BoolHolder(bool* _state);
bool* state;
}
BoolHolder::BoolHolder(bool* _state) {
state = _state;
}
bool testbool = false;
BoolHolder testbool_holder(&testbool);
如果我这样做,testbool_holder.state始终报告说,它是真实的,不管testbool本身是真是假
我在做什么错?我只想让该类能够为testbool保持最新的值,但我不知道如何实现这一点。谢谢
至少在你真的需要这些语义时使用引用。 – chris
'state'将始终是一个非空指针,因此测试为'true';你需要'*国家'。 –
如果你想要一个更持久的指针(任何类型)的标准方式看看['std :: unique_ptr'](http://en.cppreference.com/w/cpp/memory/unique_ptr)。要创建它,例如'std :: unique_ptr testbool_holder {new bool {false}};'并测试它是否执行'if(* testbool_holder)' –