C++中类的构造方法是一种特殊的函数,它的名字和类的名字相同,它的作用是用来创建一个类的实例,它可以被用来初始化类的成员变量,也可以用来完成一些其他的初始化工作。
定义构造函数
C++中类的构造函数的定义非常简单,只需要在类的定义中定义一个函数,函数名和类名相同,参数列表可以是空的,也可以包含一些参数,参数的类型可以是任何类型,比如int, double, string等,它的返回值类型必须是void。
class MyClass { public: MyClass(int a, double b); // 构造函数 ... };
构造函数的参数
当定义构造函数时,可以为其添加参数,构造函数的参数可以是任意类型,比如int, double, string等,参数的个数也可以是任意的,只要满足类的定义即可。构造函数的参数可以用来初始化类的成员变量,也可以用来完成一些其他的初始化工作。
class MyClass { public: MyClass(int a, double b); // 构造函数 ... private: int m_a; double m_b; }; MyClass::MyClass(int a, double b) { m_a = a; m_b = b; }
默认构造函数
当类中没有定义构造函数时,编译器会自动生成一个默认的构造函数,该构造函数不需要参数,它的作用是用来创建一个类的实例,但不会初始化任何成员变量,也不会完成任何其他的初始化工作。
class MyClass { public: MyClass(); // 默认构造函数 ... }; MyClass::MyClass() { // 不做任何事 }
编译器生成的构造函数
当类中定义了一个或多个构造函数时,编译器会自动生成一个默认的构造函数,该构造函数不需要参数,它的作用是用来创建一个类的实例,但不会初始化任何成员变量,也不会完成任何其他的初始化工作。
class MyClass { public: MyClass(int a, double b); // 构造函数 ... }; MyClass::MyClass(int a, double b) { // 不做任何事 }
拷贝构造函数
当类中定义了一个或多个构造函数时,编译器会自动生成一个拷贝构造函数,该构造函数的作用是用来创建一个类的实例,并从另一个类的实例复制成员变量的值,以完成一些初始化工作。
class MyClass { public: MyClass(int a, double b); // 构造函数 MyClass(const MyClass& obj); // 拷贝构造函数 ... private: int m_a; double m_b; }; MyClass::MyClass(const MyClass& obj) { m_a = obj.m_a; m_b = obj.m_b; }
使用构造函数
使用构造函数可以创建一个类的实例,使用构造函数时,必须提供参数,如果构造函数没有参数,则不需要提供参数。
MyClass obj1(1, 2.0); // 使用构造函数创建实例 MyClass obj2; // 使用默认构造函数创建实例 MyClass obj3(obj1); // 使用拷贝构造函数创建实例
C++中类的构造方法是一种特殊的函数,它的名字和类的名字相同,它的作用是用来创