例如,我的程序中有一个函数NamespaceA :: ClassB :: FunctionC().我知道我可以通过"break NamespaceA :: ClassB :: FunctionC"让GDB打破它.但是,如果我只想让GDB在那里打破,我会怎么办?
我认为解决方案的解决方案是在程序中再添加一个变量,然后我可以使用GDB中的"break ... if cond"命令.但是我可以在不向程序中添加变量的情况下实现相同的功能吗?
谢谢.
依赖于本地对象在C++中以相反的构造顺序进行破坏是不好的做法,还是应该在析构函数中以相反的顺序显式删除它们以确保它遵循该顺序?
是的,你们是对的,这个问题本身就很糟糕.
所以基本上这就是场景:
class A {
private:
unique_ptr<Something> firstP;
unique_ptr<Something> secondP;
};
Run Code Online (Sandbox Code Playgroud)
在某些时候,firstP和secondP都会得到他们需要拥有的东西.我需要的是确保当A被破坏时,firstP将比第二个P晚被破坏,所以Something firstP拥有的寿命比SecondP拥有的东西更长.
显然,如果我可以依赖secondP将比firstP早出现的事实,那么我不需要在这里做任何事情.但是如果我不能依赖它,我需要在A的析构函数中按照我想要的顺序显式重置它们.
是的,设计可能比这更好..