当前位置: 首页> 科技> 互联网 > 一些关于C++的基础知识

一些关于C++的基础知识

时间:2025/9/8 8:32:19来源:https://blog.csdn.net/2301_80001343/article/details/140300191 浏览次数:0次

引言:C++兼容C的大部分内容,但其中仍有许多小细节的东西需要大家注意

一.C++的第一个程序

#include <iostream>
using namespace std;int main()
{cout << "hello world!" << endl;return 0;
}

第一次看这个是否感觉一头雾水?不要担心,我们会在后续的学习中了解并熟悉它们的。

二.命名空间

1.namespace的定义

1>命名空间的成员可以是变量,函数,类型等

namespace xw
{int a=0;int* b;
}

2>本质:namespace本质上是一个域,独立于全局域,不同域里可以定义同名变量等

3>namespace可以定义在全局域中,也可以嵌套定义

4>C++标准库都放在一个名为std的命名空间中

5>C++中包含局部域,全局域,命名空间域,类域。域会影响在编译时查找一个变量/函数/类型的出处,其中全局域和局部域还会影响变量的生命周期

2.namespace的价值:对标识符的名称进行本地化,避免命名冲突或名字污染

3.命名空间的使用

补:::域作用限定符

        当左边啥都没有时默认在全局域中取值,若左边指定域,则在特定域中取值

1>指定命名空间访问

2>使用using将命名空间中某个成员展开

3>展开命名空间中全部成员(在项目中不建议,因为冲突风险太大,多用于日常代码练习)

三.C++的输入与输出

1.<iostream>是标准输入输出流库,定义了标准的输入输出对象

2.std::cin是istream类的对象,它主要是面向窄字符的标准输入流

3.std::cout是ostream类的对象,它主要是面向窄字符的标准输出流

4.std::endl是一个函数,待流输入输出时,相当于插入一个换行符并且刷新缓冲区

5在C++中.<<是流插入运算符, >>是流提取运算符

注:在C和C++中有很多相同的符号,但可能用法不一样,要多加注意

6.C++的输入输出可以自动识别变量类型,相比于C更方便

四.缺省参数

1.定义:在声明或定义函数时为函数的参数指定一个缺省值

2.用法:在调用函数时若没有给定实参则调用缺省值,否则调用传入的实参值

3.分类:全缺省,半缺省(规定半缺省参数必须从右往左依次连续缺省,不可间隔跳跃给缺省值)

4.注意事项

1>带缺省参数的函数调用,C++规定必须从左往右给实参,不能跳跃给实参

2>当函数定义和声明分离时,不能再函数声明和定义中同时给缺省值,规定在函数声明中给缺省值

五.函数重载

C++中将出现在同一作用域同名函数形参不同(可以是形参个数不同,也可以是形参类型不同,或形参的顺序不同)的函数称为函数重载

六.引用

1.引用的概念

1>引用相当于给变量起了个别名,不会为其新开一块空间,而是与原变量公用一块空间

2>类型& 引用别名=引用对象

2.引用的特性

1>引用在定义时必须初始化

2>一个变量可以多次引用

3>引用一旦引用一个实体就不可以再引用其他实体(在C++中引用定义后不能改变指向)

3.引用的使用

1>引用在实践中只要用于引用传参和引用作为返回值,可以减少拷贝,提高效率和改变引用对象的同时改变被引用对象

2>引用传参和指针传参的功能类似,但相对而言引用传参更方便

4.const引用

1>对于const对象必须使用const引用,对于普通对象也可以使用const引用,因为对象在引用过程中访问权限只能缩小不能放大

2>对于引用对象是const对象,变量间的运算时必须使用const引用,因为他们都具有常属性

补:在进行变量间的运算时,编译器需要一块空间暂时存储表达式的求值结果,所以就临时创建一个未命名的对象即临时对象,临时对象具有常属性

5.指针 vs 引用

引用和指针在实践中相辅相成,功能有所重叠,但各有特点

引用可看作为一个变量取别名,不新开空间指针是存储一个变量的地址,需要开辟新空间
引用在定义时必须初始化指针在定义时可以不初始化
引用在定义后不可改变指向指针可以改变指向
引用是直接访问对象指针是间接访问对象
引用的类型大小即被引用对象的类型大小指针的大小是地址的大小(4字节/8字节)
引用很少出现空引用问题,比较安全指针易出现野指针,空指针问题

七.inline

1.用inline修饰的函数叫内联函数,编译的时候C++编译器会在调用的地方展开内联函数,这样调用函数时就需要建立栈帧,可以提高效率

2.当函数短小且调用频繁时建议使用inline,除此之外当你使用内联函数时,编译器会根据实际情况选择是否展开内联函数

3.C++引入内联函数是为了替代C的宏函数,因为宏函数中的坑太多

4.内联函数的定义和声明不能放在两个文件中,这样做会导致链接错误

八.nullptr

1.在C++中NULL代表字面常量0,在C中表示无类型指针(void*)的常量

2.在C++中,nullptr是一种特殊类型的字面量,可以转换成任意其它类型的指针类型,但不能转换成整型.

关键字:一些关于C++的基础知识

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: