当我为A类提供构造函数时,我没有得到未引用的局部变量为什么? 空构造函数如何消除警告?
class A
{
public:
A() {}
};
int main()
{
A a;
}
答案 0 :(得分:7)
这只是一种理论,但由于构造函数可能包含可能导致副作用的代码,因此有人可能会决定构造一个未使用的对象来运行该代码。如果你没有构造函数并且从不引用你构造的对象,那么可以安全地确定该对象没有用处。
答案 1 :(得分:1)
例如,如果A
是持有互斥锁的东西(并在被破坏时释放锁),则此代码
int main()
{
A a;
// other actions
}
能够保持此函数的线程安全,甚至不引用a
。