C++重载构造函数的调用是怎么样子的 举个例子
时间: 2024-05-01 09:19:56 浏览: 18
C++中允许定义多个相同名称但参数个数或类型不同的构造函数,这就是构造函数的重载。构造函数的重载可以根据不同的参数来创建对象。
举个例子,假设我们有一个类Person,它有两个属性:name和age,我们可以定义两个构造函数,一个是默认构造函数,一个是带参数的构造函数,如下所示:
```c++
#include <iostream>
#include <string>
using namespace std;
class Person {
private:
string name;
int age;
public:
// 默认构造函数
Person() {
name = "";
age = 0;
}
// 带参数的构造函数
Person(string n, int a) {
name = n;
age = a;
}
void display() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
}
};
int main() {
// 调用默认构造函数创建对象
Person p1;
p1.display();
// 调用带参数的构造函数创建对象
Person p2("Tom", 20);
p2.display();
return 0;
}
```
在上面的例子中,我们定义了一个默认构造函数和一个带参数的构造函数。当我们创建对象p1时,会调用默认构造函数,当我们创建对象p2时,会调用带参数的构造函数。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)