警告:未引用的局部变量

时间:2011-04-28 04:29:05

标签: c++

当我为A类提供构造函数时,我没有得到未引用的局部变量为什么? 空构造函数如何消除警告?

class A
{
public:
   A() {}
};

int main()
{
   A a;
}

2 个答案:

答案 0 :(得分:7)

这只是一种理论,但由于构造函数可能包含可能导致副作用的代码,因此有人可能会决定构造一个未使用的对象来运行该代码。如果你没有构造函数并且从不引用你构造的对象,那么可以安全地确定该对象没有用处。

答案 1 :(得分:1)

例如,如果A是持有互斥锁的东西(并在被破坏时释放锁),则此代码

int main()
{
    A a;
    // other actions
}

能够保持此函数的线程安全,甚至不引用a