网站用php做的吗,杭州滨江网站建设,龙华做网站公司,网站设计公司成都在C中#xff0c;你通常不能在头文件中直接给类的成员变量赋值#xff0c;因为这会导致每个包含该头文件的源文件中都尝试进行赋值#xff0c;从而引发多重定义错误。然而#xff0c;你可以在类的构造函数中初始化成员变量#xff0c;或者在类声明中使用初始化列表或默认成…在C中你通常不能在头文件中直接给类的成员变量赋值因为这会导致每个包含该头文件的源文件中都尝试进行赋值从而引发多重定义错误。然而你可以在类的构造函数中初始化成员变量或者在类声明中使用初始化列表或默认成员初始化器来给成员变量设定默认值。
下面是一些示例来说明如何在类定义中初始化成员变量
使用默认成员初始化器C11及以后版本:
class MyClass { public: int myVar 10; // C11开始支持在类定义中直接初始化成员变量 };
使用构造函数的初始化列表:
class MyClass { public: int myVar; MyClass() : myVar(10) { // 在构造函数的初始化列表中赋值 // 构造函数体 } };
在类的实现.cpp文件中你也可以在构造函数体内对成员变量进行赋值但通常推荐使用初始化列表因为它更高效
MyClass::MyClass() { myVar 10; // 在构造函数体内赋值 }
直接在头文件中给成员变量赋值除了使用默认成员初始化器是不合适的因为头文件通常会被多个源文件包含。如果头文件中包含可执行代码如赋值操作这会导致每个包含该头文件的源文件都包含这段代码从而可能引发链接错误因为链接器会发现多个定义。
总之你应该避免在头文件中直接写赋值语句而是使用构造函数、初始化列表或默认成员初始化器来初始化成员变量。