C++函数重载的4种错误示例
时间: 2024-03-01 15:53:03 浏览: 15
1. 相同的函数名和参数列表,但返回类型不同:
```cpp
int foo(int x) {
return x + 1;
}
double foo(int x) {
return x + 1.0;
}
```
2. 相同的函数名和返回类型,但参数列表不同:
```cpp
int foo(int x) {
return x + 1;
}
int foo(int x, int y) {
return x + y + 1;
}
```
3. 函数重载只有名称不同,但参数列表完全相同:
```cpp
int foo(int x) {
return x + 1;
}
int bar(int x) {
return x + 1;
}
```
4. 函数重载只有参数类型的顺序不同,但参数个数和类型完全相同:
```cpp
int foo(int x, double y) {
return x + y;
}
int foo(double y, int x) {
return x + y;
}
```
以上四种情况都会导致编译器无法确定函数调用时应该调用哪个函数,从而产生错误。
相关问题
c++函数重载的4种错误示例
1. 相同的函数名和参数列表,但返回类型不同:
```cpp
int foo(int x) {
return x + 1;
}
double foo(int x) {
return x + 1.0;
}
```
2. 相同的函数名和返回类型,但参数列表不同:
```cpp
int foo(int x) {
return x + 1;
}
int foo(int x, int y) {
return x + y + 1;
}
```
3. 函数重载只有名称不同,但参数列表完全相同:
```cpp
int foo(int x) {
return x + 1;
}
int bar(int x) {
return x + 1;
}
```
4. 函数重载只有参数类型的顺序不同,但参数个数和类型完全相同:
```cpp
int foo(int x, double y) {
return x + y;
}
int foo(double y, int x) {
return x + y;
}
```
以上四种情况都会导致编译器无法确定函数调用时应该调用哪个函数,从而产生错误。
c++函数重载代码示例
C++函数重载是指在同一个作用域内,可以定义多个同名函数,但它们的参数列表必须不同。下面是一个C++函数重载的代码示例:
```cpp
#include <iostream>
// 函数重载示例
void print(int num) {
std::cout << "整数: " << num << std::endl;
}
void print(double num) {
std::cout << "浮点数: " << num << std::endl;
}
void print(const char* str) {
std::cout << "字符串: " << str << std::endl;
}
int main() {
print(10); // 调用第一个print函数
print(3.14); // 调用第二个print函数
print("Hello"); // 调用第三个print函数
return 0;
}
```
在上面的示例中,我们定义了三个名为`print`的函数,它们的参数类型分别为`int`、`double`和`const char*`。根据传入的参数类型不同,编译器会自动选择调用对应的函数。通过函数重载,我们可以根据不同的参数类型来实现相似功能的函数。