0

0

C++关键字含义大全_C++常见关键字用途说明

冰川箭仙

冰川箭仙

发布时间:2025-12-13 10:28:04

|

360人浏览过

|

来源于php中文网

原创

掌握C++关键字是写出正确、高效、可维护代码的基础,它们是编译器保留的特殊标识符,具有特定语法语义,不可用作普通标识符;需理解其在不同场景下的作用而非死记硬背。

c++关键字含义大全_c++常见关键字用途说明

掌握C++关键字,是写出正确、高效、可维护代码的基础。它们不是普通标识符,而是被编译器赋予特定语法和语义的保留字,不能用作变量名、函数名等。理解每个关键字“在什么场景下起什么作用”,比死记硬背更重要。

基础类型与修饰类关键字

这类关键字直接参与数据类型的定义和解释:

  • int、char、short、long、float、double、bool、void:内置基本类型。注意void不表示“空类型”,而是“无类型”——用于函数返回值(不返回)、指针(可指向任意对象)、模板参数占位等,不能定义void变量
  • signed/unsigned:修饰整型,决定最高位是否作为符号位。例如unsigned char取值范围是0~255,而char可能是有符号(-128~127)或无符号,取决于编译器实现。
  • const:声明不可修改性。它修饰的是“紧邻的左侧”(右左法则),如const int* p表示p可变、p指向的内容不可变;int* const p表示p不可变、p指向的内容可变。常用于函数参数、返回值、成员函数末尾(表示不修改对象状态)。
  • volatile:告诉编译器该变量可能被外部(如硬件寄存器、多线程)意外修改,禁止优化对其的读写操作。常见于嵌入式或底层并发编程不等于线程安全

作用域、生命周期与链接类关键字

控制变量/函数在哪里可见、何时存在、能否跨文件使用:

  • static:含义随上下文变化。在函数内:延长局部变量生命周期(只初始化一次,生存期为整个程序运行期);在文件作用域:限制变量/函数仅本文件可见(内部链接);在类中:声明属于类而非对象的成员(无需实例即可访问)。
  • extern:声明一个变量或函数在别处定义(通常在其他.cpp中),仅用于“告知存在”,不分配存储空间。搭配extern "C"可让C++函数按C方式链接,避免名字修饰(name mangling),实现C/C++混合调用。
  • thread_local(C++11起):每个线程拥有该变量的独立副本。适用于需要线程私有状态又不想手动管理TLS键的场景,如日志上下文、随机数引擎等。

面向对象与泛型核心关键字

支撑C++类、继承、多态、模板等关键机制:

CA.LA
CA.LA

第一款时尚产品在线设计平台,服装设计系统

下载

立即学习C++免费学习笔记(深入)”;

  • class、struct、union:定义用户自定义类型。区别主要在默认访问权限(class是private,struct/union是public)和默认继承方式(class是private,struct是public)。union共享内存,同一时刻仅一个成员有效。
  • public、protected、private:控制继承与访问权限。继承时决定基类成员在派生类中的可见性;在类内决定外部/派生类能否访问该成员。
  • virtual、override、final:支持运行时多态。virtual声明虚函数;override显式表明重写基类虚函数(编译器检查签名是否匹配);final阻止类被继承或虚函数被进一步重写,提升安全性和优化可能性。
  • template、typename、class(模板形参)template引入模板定义;typename在模板中用于告诉编译器某依赖名称是类型(如typename T::value_type);class在模板参数列表中与typename等价,但习惯上对类型参数用class,对非类型参数(如int N)则直接写类型。

内存管理与特殊行为关键字

涉及资源分配、异常处理、新特性约束等:

  • new / delete、new[] / delete[]:动态分配/释放堆内存。务必配对使用;delete只能用于new分配的内存,delete[]用于new[]。现代C++更推荐用std::vectorstd::unique_ptr等RAII容器替代裸指针。
  • throw、noexcept:异常相关。throw抛出异常;noexcept说明函数不会抛异常(可带条件,如noexcept(noexcept(expr))),影响移动构造/赋值能否被编译器自动调用,也便于优化。
  • auto、decltype:类型推导。auto用于变量声明,根据初始化表达式推导类型(不包括CV限定符和引用,除非显式加&);decltype返回表达式的类型(保留引用和CV限定符),常用于模板元编程和返回类型后置(auto func() -> decltype(...))。
  • constexpr(C++11起)、consteval(C++20起):声明可在编译期求值的表达式或函数。constexpr函数在满足条件下可运行时也可编译时执行;consteval强制必须编译期求值,否则编译失败,适合纯编译期计算场景(如字符串哈希、类型列表操作)。

基本上就这些。C++关键字数量不算多(C++17共84个,C++20新增约10个),但组合使用灵活、语义随上下文变化大。建议结合实际代码片段理解,而不是孤立记忆。遇到不确定时,查标准文档或权威参考(如cppreference.com)最可靠。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

307

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

574

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

101

2025.10.23

go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

56

2025.09.05

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

50

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

15

2025.11.27

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

183

2023.12.04

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

41

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号