C 类的默认成员函数在 C 中类有六个特殊的默认成员函数。其中构造函数、析构函数和拷贝构造函数是最基础且最常用的三个。若未显式定义编译器会自动生成默认版本但特定场景需手动实现以正确管理资源。1.构造函数 (Constructor)作用在对象创建时初始化成员变量分配资源。特点函数名与类名相同无返回值。可重载多个不同参数的构造函数。默认构造函数无参数若未定义任何构造函数编译器自动生成空实现的默认构造函数。示例class MyClass { public: int a; double b; // 默认构造函数 MyClass() : a(0), b(0.0) {} // 带参构造函数 MyClass(int x, double y) : a(x), b(y) {} }; // 使用 MyClass obj1; // 调用默认构造函数 MyClass obj2(10, 3.14); // 调用带参构造函数2.析构函数 (Destructor)作用在对象销毁时释放资源如堆内存、文件句柄。特点函数名为~类名无参数和返回值。每个类仅有一个析构函数不可重载。若未显式定义编译器生成空实现的默认析构函数可能引发资源泄漏。示例class ResourceHolder { public: int* data; // 构造函数中分配资源 ResourceHolder(int size) { data new int[size]; } // 析构函数中释放资源 ~ResourceHolder() { delete[] data; // 避免内存泄漏 } }; // 使用 { ResourceHolder obj(100); // 构造函数调用 } // 离开作用域时析构函数自动调用3.拷贝构造函数 (Copy Constructor)作用用同类型对象初始化新对象深拷贝场景必需。特点函数签名类名(const 类名 other)。调用场景对象初始化如MyClass obj2 obj1;、传参、返回值。默认拷贝构造函数执行浅拷贝直接复制指针地址深拷贝需手动实现。示例class StringContainer { public: char* str; // 构造函数 StringContainer(const char* s) { str new char[strlen(s) 1]; strcpy(str, s); } // 拷贝构造函数深拷贝 StringContainer(const StringContainer other) { str new char[strlen(other.str) 1]; strcpy(str, other.str); } ~StringContainer() { delete[] str; } }; // 使用 StringContainer s1(Hello); StringContainer s2 s1; // 调用拷贝构造函数关键注意事项资源管理若类涉及动态内存或外部资源必须手动实现析构函数和拷贝构造函数或禁用拷贝。默认浅拷贝会导致重复释放内存双重释放错误。编译器默认行为未定义时编译器生成默认版本构造函数无操作。析构函数无操作。拷贝构造函数逐成员浅拷贝。现代 C 改进使用 default显式要求编译器生成默认函数MyClass() default; // 显式生成默认构造函数使用 delete禁用函数MyClass(const MyClass) delete; // 禁用拷贝掌握这三个函数是理解 C 对象生命周期和资源管理的基础尤其在涉及动态内存时需谨慎设计。