入门c++新增基础功能

发布时间:2026/5/18 3:46:57

入门c++新增基础功能 c基础知识1.namespace2.域作用限定符3.域4.c输入和输出5.缺省参数6.函数重载7.引用1.namespace出现原因一个变量名在引用头文件时可能因函数名造成冲突2.域作用限定符对域内成员进行访问#includestdio.h#includestdlib.hnamespaceb{intrand10;}intmain(){printf(%p,rand);//打印函数指针printf(%d,b::rand);//打印b这个命名域的变量}由此可以看出域的隔离性可以解决c中命名冲突的问题而域的成员需要用域作用限定符进行访问。3.域域分为函数局部域全局域命名空间域和类域其中局部域和全局域除了影响查找逻辑还会影响生命周期#includestdio.hinta10;intmain(){inta5;printf(%d,a);//打印5printf(%d,::a);//打印10return0;}由此可知编译器的查找逻辑是就近原则先从局部域进行查找。而如果想要查找全局变量则需要加上域作用限定符特别注意的是c标准库都放在一个叫std的命名空间中使用using将命名空间中某个成员展开一定是频繁使用的成员using b::rand。而在初学过程为了方便起见可以展开命名域中全部成员using namespace std做项目时不推荐该写法。4.c输入和输出std::cin是iostream类的对象面向窄字符的标准输入流std::cout是ostream面向窄字符的标准输出流流插入运算符 流提取运算符c输入输出更方便无需手动指定格式可以自动识别变量类型#includeiostreamusingnamespacestd;intmain(){inta;cina;doubleb0.1;couta bendl;return0;}5.缺省参数#includeiostreamusingnamespacestd;voidfunc(inta0){coutaendl;}intmain(){func();//没有传参使用参数默认值0func(10);//传参使用指定实参return0;}由此可知当函数没有传参时函数会使用默认的缺省值0传参时则会以传入的实参作为该函数传入的值需要注意的是c规定半缺省只能从右往左连续缺省不能跳过。6.函数重载c支持同一作用域出现同名函数但要求同名函数参数不同可以是参数个数不同也可以是类型不同。以计算器为例#includeiostreamusingnamespacestd;intcal(intx,inty){returnxy;}doublecal(doublex,doubley){returnxy;}intmain(){coutcal(1,2) cal(0.1,0.2)endl;return0;}由此可以看出只要满足以上条件可以用同一函数名实现不同的函数作用实现重载的效果这也是c优于c的另一体现。引用即给已有变量起一个别名该别名与原名同指向一个内存空间。#includeiostreamusingnamespacestd;intmain(){inta0;intba;intca;//b和c是a的别名intdb;//也可以给别名起别名d相当于还是a的别名coutaendl;coutbendl;coutcendl;coutdendl;return0;}我们知道在c中无法通过传值传参用函数修改实参的值而应该用传地址的方式进行修改而在c中多出了新的方式——传引用例如实现一个交换函数#includeiostreamusingnamespacestd;voidswap(inta,intb){inttmpa;ab;btmp;}intmain(){inta1;intb2;swap(a,b);couta bendl;return0;}通过传引用直接访问内存空间进行值交换

相关新闻