在C++类中,我的私有函数和变量应该放在类头文件定义的私有部分还是类源文件中?为什么?
例如:
例如:
// Header
class MyClass {
public:
void doSomething();
private:
int a = 0;
}
// Source
void MyClass::doSomething()
{
// Do something with `a`
}
或者
// Header
class MyClass {
public:
void doSomething();
}
// Source
int a = 0;
void MyClass::doSomething()
{
// Do something with `a`
}
我一直认为,在编程时,应该使函数/变量的作用域尽可能小。那么,将变量 a
的作用域限制在源文件的范围内,是不是最好的选择呢?
a
的作用域比第一个例子中的“小”得多,它根本不是成员变量,而是在全局范围内声明的。 - Mata
,两个版本不等同。 - StoryTeller - Unslander Monicaint MyClass::a = 0
只适用于静态成员,你必须在头文件中坚持使用默认值。 - Vivick