网站首页 > 文章精选 正文
在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++编程!弯道超车,快人一步!笔者这里或许可以帮到你~
编程学习书籍分享:
编程学习视频分享:
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
点击下方【了解更多】获取更多免费学习资料帮助你学习成长哦~
- 上一篇: C++基础语法梳理:智能指针和强制类型转换运算符
- 下一篇: C++中,常用的强制类型转换函数
猜你喜欢
- 2025-05-14 嵌入式开发中宝藏级别的C语言代码,使用频率高,绝对值得珍藏
- 2025-05-14 嵌入式面试常问的16个C语言问题
- 2025-05-14 如何利用CAS技术实现无锁队列
- 2025-05-14 并发编程:从线程到协程的技术演进与实战指南
- 2025-05-14 嵌入式工程师竟然看不懂这些专业语句,那真别怪人说你菜
- 2025-05-14 CPU缓存一致性:从理论到实战
- 2025-05-14 Java 魔法类 Unsafe 详解
- 2025-05-14 为QML创建C++插件
- 2025-05-14 C++ Qt开发:运用QThread多线程组件
- 2025-05-14 教你用C来实现基于Mempool的内存池设计
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)