发表时间:2022-03-25来源:网络
c++基本语法(缺省参数,函数重载)
一.C和C++的区别
1.C语言和C++在作用域上,c++除了具有c语言具有的局部作用域和全局作用域以外新增加了命名空间;
2.如果在全局变量中,变量名如果冲突了,C语言(除了把名字取的长一些似乎没有更好的办法了),C++为了优化C语言这一缺点引入命名空间;
3.C和C++在底层调用的修饰规则也略有不同,详情后文演示;
二.C++中新增语法
1.作用域的使用方法
2.一个变量在多个作用域中同时出现的调用规则
int a=30 //全局变量 int main() { int a=40; printf("%d\n",a) //输出结果为40,就近原则; printf("%d\n",::a) //输出结果30,运用作用域限定符,访问全局作用; printf("%d\n,N1::a) //输出结果10,对N1解引用,访问N1的命名空间; printf("%d"\n,N1::N2::a);//访问嵌套命名空间里的a; }如果不想每次都输入作用域限定符,还可以有以下操作:
using N1::a; //操作1:在函数前用using导出 int main() { printf("%d\n",a);//a=10 } using namespace N1;//操作二 int main() { printf("%d\n",a);//a=10 }这样做的缺点是:可能与全局变量冲突
tips:在C++中可以定义相同的命名空间,只是编译的时候会合并成一个;
三.缺省参数的概念(备胎)
a.全缺省参数:所有参数都带有默认值(从左往右匹配)
b.半缺省参数:只有部分参数带有默认值(从右往左赋值,系统优先认为左边还没有值,可以解释全缺省为什么从左往右匹配)
tips:缺省参数不能在定义和声明中同时给出,主要原因是如果给的不一样,编译器会报错;(在声明中给会好一些)
四.函数重载–多义词
相同作用域中,函数重名,参数列表不同;
参数列表不同:①参数个数不同 ②参数类型不同 ③类型次序不同 ④返回类型不同(无关)
编译器在编译阶段必须对实参进行类型推演,根据推演结果调用相应函数

五.C和C++在底层调用时的区别
在C中底层调用时都是在函数名前加’_’ 在重载时都相同,编译器并不能有效识别,所以C语言不支持重载;
C++底层调用规则:将函数和参数类型结合在一起(将参数类型编译到名字中)
例如:int Add(int left,int right)–>?Add@@YAHHH@Z
double Add(double left,double right)–>?Add@@YA@NNN@Z;
tips:在c++中想用c语言语法?可用‘extern"c" ’
作用:让编译器按C语言语法规则在C++中编译
苏宁微店卖家版app(苏宁推客)下载v9.8.40 安卓最新版
57.19MB |生活服务
机友邦工程机械网官方版app下载v4.0.4 安卓版
88.56MB |系统工具
苏宁微店客户端(改名苏宁推客)下载v9.8.40 安卓版
57.19MB |生活服务
优腿商家端app下载v1.23.5 安卓版
34.13MB |系统工具
龙湖物业app下载v1.20.0 安卓版
84.54MB |生活服务
moon月球手机版下载v2.6.5 安卓版
51.55MB |生活服务
邻里掌柜app官方版下载v8.12.3 安卓版
151.25MB |生活服务
药采采app官方版下载v2.6.3 安卓版
31.88MB |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14