📅  最后修改于: 2023-12-03 14:39:54.089000             🧑  作者: Mango
在C++中,构造函数是用于初始化对象的特殊成员函数。在创建对象时,构造函数会自动调用并执行相应的操作,例如对成员变量进行赋值或执行特定的操作等。
问题14是关于构造函数的一个问题,下面将对此问题进行介绍。
在C++中是否可以声明多个构造函数?
是的,C++中可以声明多个构造函数。这些不同的构造函数可以有不同的参数列表和实现方式,以满足不同的初始化需求。
以下是一个示例程序,其中包含了两个构造函数:
#include <iostream>
using namespace std;
class Person {
public:
int age;
double weight;
string name;
Person(int a, double w, string n) {
age = a;
weight = w;
name = n;
}
Person(string n) {
name = n;
}
void display() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
cout << "Weight: " << weight << "kg" << endl;
}
};
int main() {
Person p1(25, 65.5, "Tom");
Person p2("Tony");
p1.display();
p2.display();
return 0;
}
以上程序定义了一个名为Person的类,包含了三个成员变量:age、weight和name。在类中声明了两个构造函数,分别为带有三个参数的构造函数和带有一个参数的构造函数。
在主函数中,创建了两个Person对象p1和p2,分别使用两个不同的构造函数进行初始化。p1使用了带有三个参数的构造函数进行初始化,而p2则使用了带有一个参数的构造函数进行初始化。
输出结果为:
Name: Tom
Age: 25
Weight: 65.5kg
Name: Tony
Age: -858993460
Weight: 2.12199e-314kg
可以看到,p1的输出结果正确显示了其所有成员变量的值,而p2的输出结果显示的是未进行初始化的值。这是因为p2的构造函数只对name成员进行了初始化,而age和weight成员未进行初始化。
在实际编程中,应该根据实际需求来选择合适的构造函数,以保证对象正确地进行初始化。
在C++中,构造函数是用于初始化对象的特殊成员函数。它可以被声明为多个,以满足不同的初始化需求。在实际编程中,应该根据实际需求来选择合适的构造函数,以保证对象正确地进行初始化。