C++类重载
时间: 2023-08-12 22:13:16 浏览: 84
C++中的类重载指的是在同一个类中定义多个函数,这些函数具有相同的名称但参数列表不同。这样做的好处是可以根据不同的参数类型或参数个数来调用不同的函数,这种机制被称为函数重载。
例如,假设我们有一个名为“Person”的类,该类有两个成员函数“setName”和“setAge”,它们分别用于设置姓名和年龄:
```
class Person {
public:
void setName(std::string name) {
this->name = name;
}
void setAge(int age) {
this->age = age;
}
private:
std::string name;
int age;
};
```
现在,我们想要在该类中定义一个新的函数,用于设置姓名和年龄。我们可以使用函数重载的机制,如下所示:
```
class Person {
public:
void setName(std::string name) {
this->name = name;
}
void setAge(int age) {
this->age = age;
}
void setNameAndAge(std::string name, int age) {
this->name = name;
this->age = age;
}
private:
std::string name;
int age;
};
```
在上面的代码中,我们定义了一个名为“setNameAndAge”的新函数,该函数接受两个参数,分别为姓名和年龄。由于函数名称相同但参数列表不同,因此编译器可以根据传递给函数的参数类型或参数个数来选择正确的函数。例如,如果我们调用“setNameAndAge”函数并传递一个字符串和一个整数作为参数,编译器将调用该函数。如果我们分别调用“setName”和“setAge”函数并传递相应的参数,编译器也将调用这两个函数。
阅读全文
相关推荐














