尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【C++】入门01

【C++】入门01 一、namespace的定义1.定义命名空间需要使用namespace关键字后面跟命名空间的名字然后接一对 { } 即可花括号中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。2.namespace本质是定义一个域这个域跟全局域各自独立不同的域可以定义同名变量所以下面的rand不再冲突。3.C中域有函数局部域、全局域、命名空间域、类域域影响的是编译语法查找一个变量/函数/类型出处声明或定义的逻辑所有有了域隔离名字冲突就解决了局部域和全局域除了会影响编译查找逻辑还会影响变量的生命周期命名空间和类域不影响变量生命周期4.namespace只能定义在全局可以嵌套定义5.项目工程中多文件定义的同名namespace会认为是一个namespace不会冲突6.C标准库都放在一个叫std(stdanard)的命名空间中二、命名空间使用编译查找一个变量的声明/定义时默认只会在局部或全局查找不会到命名空间里面去查找所以程序会报错我们要使用命名空间中的定义/函数有三种方式指定命名空间访问项目中推荐这种方式using将命名空间中某个成员展开经常访问的不存在冲突的成员推荐这种方式展开命名空间中全部成员项目不推荐冲突风险很大三、C输入输出是input output stream的缩写是标准的输入、输出流库定义了标准的输入、输出对象std::cin是istream类的对象它主要面向窄字符的标准输入流std::cout是ostream类的对象它主要面向窄字符的标准输出流std::endl是操纵符底层实现是一个函数流插入输出时相当于插入一个换行字符加刷新缓冲区是流插入运算符是流提取运算符使用C输入输出更方便能更好的支持自定义类型对象的输入输出IO流涉及类和对象、运算符承载、继承等很多面向对象的知识cout / cin / endl 等都属于C标准库C标准库都放在叫std的命名空间中所以要通过命名空间去使用它们usingnamespacestd;intmain(){couthello world!\nendl;couthello world!\nendl;couthello world!\nendl;return0;}//using namespace std;intmain(){std::couthello world!\nstd::endl;std::couthello world!\nstd::endl;std::couthello world!\nstd::endl;return0;}usingstd::coutintmain(){couthello world!\nstd::endl;couthello world!\nstd::endl;couthello world!\nstd::endl;inta[10]{1,2,3,4};std::listintlt;std::sort(a,a10);return0;}printf指定的格式是语法原生定义类型类类型无法支持cin \cout本质是为了支持任意类型的输入输出在io需求比较高的地方如部分大量输入的竞竞赛题中加上以下三行代码可以提高io效率ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);四、缺省参数在c里用的非常广泛缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时如果没有指定实参则采⽤该形参的缺省值否则使⽤指定的实参缺省参数分为全缺省和半缺省参数。有些地⽅把缺省参数也叫默认参数•全缺省就是全部形参给缺省值半缺省就是部分形参给缺省值。C规定半缺省参数必须从右往左依次连续缺省不能间隔跳跃给缺省值。•带缺省参数的函数调⽤C规定必须从左到右依次给实参不能跳跃给实参。•函数声明和定义分离时缺省参数不能在函数声明和定义中同时出现规定必须函数声明给缺省值。五、函数重载C⽀持在同⼀作⽤域中出现同名函数但是要求这些同名函数的形参不同可以是参数个数不同或者类型不同。Ⅰ.参数类型不同Ⅱ.参数个数不同Ⅲ.参数类型顺序不同下⾯两个函数构成重载 f()但是调⽤时会报错存在歧义编译器不知道调⽤谁
返回列表