C++中main.cpp里面两个同名函数参数不同的分别调用例子和C例子
时间: 2024-12-22 11:26:59 浏览: 9
在C++中,如果`main.cpp`中有两个同名的函数,但是它们的参数列表不同,这种情况下通常会通过函数重载(function overloading)来区分。例如:
```cpp
// Function overload example in C++
#include <iostream>
void print(int num) {
std::cout << "Printing an integer: " << num << std::endl;
}
void print(double num) {
std::cout << "Printing a double: " << num << std::endl;
}
int main() {
print(5); // Calls the first function with an int argument
print(3.14); // Calls the second function with a double argument
return 0;
}
```
在这个例子中,`print`函数一次接受一个整数,一次接受一个双精度浮点数。当调用`print`并传入相应类型的值时,编译器会选择正确的函数。
而在C语言中,因为缺乏静态多态性(不像C++有编译时函数匹配),你不能直接通过函数名称和参数来达到同样的效果。你可以通过指针或函数指针间接实现类似功能:
```c
// C example using function pointers
#include <stdio.h>
void print_int(int num) {
printf("Printing an integer: %d\n", num);
}
void print_double(double num) {
printf("Printing a double: %.2f\n", num);
}
int main() {
int (*func_ptr)(int) = print_int; // Function pointer for integers
func_ptr(5); // Call the integer-printing function
void (*double_func_ptr)(double) = print_double; // Different pointer for doubles
double_func_ptr(3.14); // Call the double-printing function
return 0;
}
```
在这个C示例中,我们通过函数指针来动态地选择执行哪个函数。虽然不如C++直观,但在C中这是实现类似功能的一种方法。
阅读全文