如何定义构造函数,析构函数,重载函数函数并且调用他们,用c++代码实现
时间: 2024-04-30 14:25:10 浏览: 98
C++中构造函数和析构函数
构造函数、析构函数和重载函数是 C++ 中的重要概念,它们分别用于对象的初始化、释放和操作符号重载。下面是它们的定义和用法:
1. 构造函数
构造函数是一种特殊的成员函数,用于在创建对象时对其进行初始化。它的名称与类名相同,没有返回值类型,可以有多个重载版本,可以接受参数。
示例代码:
```c++
class Person {
public:
// 默认构造函数
Person() {
cout << "Person created." << endl;
}
// 带参数的构造函数
Person(string name, int age) {
this->name = name;
this->age = age;
cout << "Person created with name " << name << " and age " << age << "." << endl;
}
private:
string name;
int age;
};
int main() {
Person person1; // 调用默认构造函数
Person person2("Tom", 20); // 调用带参数的构造函数
return 0;
}
```
2. 析构函数
析构函数是一种特殊的成员函数,用于在对象被销毁时进行清理工作。它的名称与类名相同,前面带有波浪线(~),没有返回值类型,没有参数。
示例代码:
```c++
class Person {
public:
// 构造函数
Person(string name) {
this->name = name;
cout << "Person created with name " << name << "." << endl;
}
// 析构函数
~Person() {
cout << "Person " << name << " destroyed." << endl;
}
private:
string name;
};
int main() {
Person person1("Tom");
{
Person person2("Jerry");
}
return 0;
}
```
在上面的代码中,当 person2 超出作用域时,析构函数会被调用,输出 "Person Jerry destroyed."。
3. 重载函数
重载函数是指在同一个作用域内定义多个同名但参数列表不同的函数。它们可以有不同的返回值类型,但不能仅仅是返回类型不同。重载函数可以通过参数列表来区分不同的版本。
示例代码:
```c++
class Calculator {
public:
int add(int a, int b) {
return a + b;
}
float add(float a, float b) {
return a + b;
}
};
int main() {
Calculator calc;
int sum1 = calc.add(1, 2); // 调用 int add(int, int)
float sum2 = calc.add(1.5f, 2.5f); // 调用 float add(float, float)
return 0;
}
```
在上面的代码中,add 方法被重载了两次,分别接受 int 类型和 float 类型的参数,并返回 int 和 float 类型的结果。
总之,构造函数、析构函数和重载函数是 C++ 中非常重要的概念,它们都有自己的定义和用法,需要认真掌握。
阅读全文