网站首页 > 技术文章 正文
在C ++中,以下函数声明不能重载。
1)仅在返回类型上不同的函数声明。例如,以下程序编译失败:
#include<iostream>
int foo() {
return 10;
}
char foo() {
return 'a';
}
int main()
{
char x = foo();
getchar();
return 0;
}
2)具有相同名称和名称参数类型列表的成员函数声明,如果其中任何一个都是静态成员函数声明,则不能重载。例如,以下程序编译失败:
#include<iostream>
class Test {
static void fun(int i) {}
void fun(int i) {}
};
int main()
{
Test t;
getchar();
return 0;
}
3)仅在指针*与数组[]中不同的参数声明是等效的。即,将数组声明调整为指针声明。在参数类型中,只有第二维和后续数组维才有意义。例如,以下两个函数声明是等效的:
int fun(int *ptr);
int fun(int ptr[]); // redeclaration of fun(int *ptr)
4)仅在一个是函数类型而另一个是指向相同函数类型的指针方面不同的参数声明是等效的。
void h(int ());
void h(int (*)()); // redeclaration of h(int())
5)仅在存在和不存在const和/或volatile方面不同的参数声明是等效的。也就是说,在确定要声明,定义或调用哪个函数时,将忽略每种参数类型的const和volatile类型说明符。例如,以下程序在编译时失败,并显示错误“重新定义'int f(int)'”
例子:
#include<iostream>
#include<stdio.h>
using namespace std;
int f ( int x) {
return x+10;
}
int f ( const int x) {
return x+10;
}
int main() {
getchar();
return 0;
}
以这种方式,仅忽略参数类型说明中最外层的const和volatile类型说明符。包含在参数类型规范中的const和volatile类型说明符很重要,可用于区分重载的函数声明。
6)两个仅在默认参数方面不同的参数声明是等效的。例如,以下程序在编译时失败,并显示错误“重新定义`int f(int,int)'”
#include<iostream>
#include<stdio.h>
using namespace std;
int f ( int x, int y) {
return x+10;
}
int f ( int x, int y = 10) {
return x+y;
}
int main() {
getchar();
return 0;
}
以上就是今天的全部内容了。每日分享小知识,希望对你有帮助~
另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~
编程学习书籍分享:
编程学习视频分享:
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
点击下方【了解更多】获取更多免费学习资料帮助你学习成长哦~
- 上一篇: 面试与实战:什么是 Lambda?该如何使用?
- 下一篇: 高中数学解题分析方法及知识点
猜你喜欢
- 2025-05-24 高中数学解题分析方法及知识点
- 2025-05-24 面试与实战:什么是 Lambda?该如何使用?
- 2025-05-24 设计模式之单件模式
- 2025-05-24 Axon Framework - 模型- 聚合
- 2025-05-24 自动化利器Python类实例方法、静态方法和类方法的区别和用法
- 2025-05-24 嵌入式开发必看!面向过程VS面向对象,哪种更适合你的项目?
- 2025-05-24 Python:深度剖析实例方法、类方法和静态方法的区别
- 2025-05-24 避免踩坑,C++常见面试题的分析与解答
- 2025-05-24 一文掌握Python 中的类方法与静态方法
- 2025-05-24 c#入门教程(九)静态变量
- 05-24高中数学解题分析方法及知识点
- 05-24C/C++编程笔记:无法在C++中重载的函数,六种方式
- 05-24面试与实战:什么是 Lambda?该如何使用?
- 05-24设计模式之单件模式
- 05-24Axon Framework - 模型- 聚合
- 05-24自动化利器Python类实例方法、静态方法和类方法的区别和用法
- 05-24嵌入式开发必看!面向过程VS面向对象,哪种更适合你的项目?
- 05-24Python:深度剖析实例方法、类方法和静态方法的区别
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)