在 class 成员中初始化变量是不好的做法吗?
Is it bad practice to initialize variables in class members?
如果一个变量的预期作用域确实是本地的,那么保持这种状态对我来说才有意义。这就是我一直在做的。但是我最近在工作中从 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 on the other hand tells me that 'a' should be initialized in the constructor.
a
不能在构造函数中初始化,因为它是成员函数C::foo()
的局部变量 . Eclipse 给你一个虚假的警告。
如果一个变量的预期作用域确实是本地的,那么保持这种状态对我来说才有意义。这就是我一直在做的。但是我最近在工作中从 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 on the other hand tells me that 'a' should be initialized in the constructor.
a
不能在构造函数中初始化,因为它是成员函数C::foo()
的局部变量 . Eclipse 给你一个虚假的警告。