初始化类成员中的变量是一种不好的做法吗?

Is it bad practice to initialize variables in class members?

本文关键字:一种 成员 变量 初始化      更新时间:2023-10-16

如果一个变量的预期范围确实是局部的,那么保持这种方式对我来说才有意义。这就是我一直在做的事情。但是,我最近在工作中从 vim 切换到 eclipse,如果构造函数中没有初始化每个成员变量,则 eclipse 会标记我的构造函数。 例如,在下面的代码中,它编译得很好。G++没有问题。另一方面,Eclipse告诉我'a'应该在构造函数中初始化。

是否有任何理由说明此警告可能相关,或者是否值得一起忽略?

class C
{
public:
    C(){}
    ~C(){}
    void foo();
};
void C::foo()
{
    int a;
}
int main() {
    C c;
    return 0;
}

另一方面,Eclipse告诉我'a'应该在构造函数中初始化。

a无法在构造函数中初始化,因为它是成员函数C::foo()局部变量。Eclipse正在给你一个虚假的警告。