文章目录
1. 关键字
2. 控制语句关键字
3. 数据类型关键字
4. 存储类型关键字
5. 类和对象相关关键字
6. 异常处理关键字
7. 其他关键字
1. 关键字
C++ 关键字是编程语言保留的单词,这些单词具有特定的含义,并在编译过程中被编译器识别和处理。由于关键字有特殊的用途,因此不能将它们用作标识符(变量名、函数名、类名等)。
控制语句关键字:用于控制程序的流程,例如条件判断、循环等。数据类型关键字:用于定义变量和函数的类型。存储类型关键字:用于指定变量的存储位置和生命周期。类和对象相关关键字:用于面向对象编程,定义类、对象及其属性和方法。异常处理关键字:用于处理程序运行时的异常。其他关键字:提供各种其他功能,如命名空间、类型转换等。分类 | 关键字 | 描述 |
---|---|---|
控制语句关键字 | if | 条件语句,用于根据条件表达式的结果执行代码块。 |
else | 与if 配合使用,用于条件为假时执行代码块。 | |
switch | 用于根据一个变量的值执行不同的代码块。 | |
case | 在switch 语句中用于匹配变量的值。 | |
default | 在switch 语句中用于处理所有未匹配的情况。 | |
for | 循环语句,用于执行代码块多次,通常用于已知次数的循环。 | |
while | 循环语句,用于根据条件表达式重复执行代码块。 | |
do | 与while 配合使用,先执行代码块,再检查条件表达式。 | |
break | 终止循环或switch 语句,并跳出语句块。 | |
continue | 跳过当前循环迭代,继续下一次迭代。 | |
goto | 无条件跳转到标记位置,不推荐使用,因为会使代码难以维护。 | |
return | 用于从函数中返回值,并终止函数执行。 | |
数据类型关键字 | int | 整数类型。 |
float | 单精度浮点数类型。 | |
double | 双精度浮点数类型。 | |
char | 字符类型。 | |
void | 无类型,常用于函数无返回值。 | |
bool | 布尔类型,表示真或假。 | |
short | 短整数类型,通常为16位。 | |
long | 长整数类型,通常为32位或更长。 | |
signed | 有符号类型修饰符。 | |
unsigned | 无符号类型修饰符。 | |
wchar_t | 宽字符类型,通常用于Unicode字符。 | |
存储类型关键字 | auto | 自动类型推断,C++11 引入。 |
register | 建议将变量存储在寄存器中,实际使用由编译器决定。 | |
static | 指定变量在其作用域内保持其值和生命周期。 | |
extern | 声明变量或函数在另一个文件中定义。 | |
mutable | 允许常量成员在const 成员函数中被修改。 | |
thread_local | 声明线程局部存储变量,每个线程有其独立实例。 | |
类和对象相关关键字 | class | 定义类。 |
struct | 定义结构体,默认访问权限为公有。 | |
union | 定义共用体。 | |
this | 指针,指向调用对象自身。 | |
public | 访问权限,公有成员。 | |
private | 访问权限,私有成员。 | |
protected | 访问权限,受保护成员。 | |
virtual | 声明虚函数,支持多态。 | |
friend | 声明友元,允许非成员函数访问私有和保护成员。 | |
explicit | 显式构造函数,防止隐式转换。 | |
new | 动态分配内存。 | |
delete | 释放动态分配的内存。 | |
operator | 重载运算符。 | |
sizeof | 计算对象或类型的字节大小。 | |
typename | 声明类型名称,特别是在模板中使用。 | |
异常处理关键字 | try | 用于捕获异常。 |
catch | 用于处理异常。 | |
throw | 用于抛出异常。 | |
其他关键字 | namespace | 定义命名空间,用于组织代码,避免命名冲突。 |
using | 引入命名空间或类型别名。 | |
inline | 建议编译器内联函数,减少函数调用开销。 | |
const | 声明常量或常量成员函数。 | |
volatile | 指示变量可能会被程序外因素修改,防止编译器优化。 | |
enum | 定义枚举类型。 | |
typedef | 为现有类型定义新的名称。 | |
template | 定义模板,用于泛型编程。 | |
constexpr | 用于在编译时计算常量表达式。 | |
nullptr | 空指针常量,取代旧的NULL 。 | |
dynamic_cast | 用于安全地将基类指针转换为派生类指针。 | |
static_cast | 用于执行显式转换。 | |
reinterpret_cast | 用于重新解释类型的比特模式。 | |
const_cast | 用于移除const 或volatile 属性。 | |
typeid | 用于在运行时获取对象的类型信息。 | |
export | 用于模板导出,C++20之前被弃用,现已被删除。 | |
import | 用于模块导入,C++20引入。 |
2. 控制语句关键字
if
:条件语句,用于根据条件表达式的结果执行代码块。
if (condition) { // code to execute if condition is true}
else
:与if
配合使用,用于条件为假时执行代码块。
if (condition) { // code if condition is true} else { // code if condition is false}
switch
:用于根据一个变量的值执行不同的代码块。
switch (variable) { case value1: // code for value1 break; case value2: // code for value2 break; default: // default code}
case
:在switch
语句中用于匹配变量的值。
switch (variable) { case value: // code for case value break;}
default
:在switch
语句中用于处理所有未匹配的情况。
switch (variable) { default: // default code}
for
:循环语句,用于执行代码块多次,通常用于已知次数的循环。
for (int i = 0; i < 10; i++) { // code to execute}
while
:循环语句,用于根据条件表达式重复执行代码块。
while (condition) { // code to execute}
do
:与while
配合使用,先执行代码块,再检查条件表达式。
do { // code to execute} while (condition);
break
:终止循环或switch
语句,并跳出语句块。
for (int i = 0; i < 10; i++) { if (i == 5) { break; }}
continue
:跳过当前循环迭代,继续下一次迭代。
continue:跳过当前循环迭代,继续下一次迭代。
goto
:无条件跳转到标记位置,不推荐使用,因为会使代码难以维护。
goto label;// codelabel:// code to execute after jump
return
:用于从函数中返回值,并终止函数执行。
int function() { return value;}
3. 数据类型关键字
int
:整数类型。
int number = 10;
float
:单精度浮点数类型。
float number = 3.14;
double
:双精度浮点数类型。
double number = 3.1415926535;
char
:字符类型。
char letter = 'A';
void
:无类型,常用于函数无返回值。
void function() { // code}
bool
:布尔类型,表示真或假。
bool isTrue = true;
short
:短整数类型,通常为16位。
short number = 32767;
long
:长整数类型,通常为32位或更长。
long number = 2147483647;
signed
:有符号类型修饰符。
signed int number = -10;
unsigned
:无符号类型修饰符。
unsigned int number = 10;
wchar_t
:宽字符类型,通常用于Unicode字符。
wchar_t wideChar = L'A';
4. 存储类型关键字
auto
:自动类型推断,C++11 引入。
auto number = 10; // 编译器推断number为int类型
register
:建议将变量存储在寄存器中,实际使用由编译器决定。
register int number = 10;
static
:指定变量在其作用域内保持其值和生命周期。
static int count = 0;
extern
:声明变量或函数在另一个文件中定义。
extern int number;
mutable
:允许常量成员在const
成员函数中被修改。
class MyClass { mutable int var;public: void modify() const { var = 10; }};
thread_local
:声明线程局部存储变量,每个线程有其独立实例。
thread_local int number = 10;
5. 类和对象相关关键字
class
:定义类。
class MyClass { int var;public: void method();};
struct
:定义结构体,默认访问权限为公有。
struct MyStruct { int var;};
union
:定义共用体。
union MyUnion { int intVar; float floatVar;};
this
:指针,指向调用对象自身。
class MyClass { int var;public: void setVar(int var) { this->var = var; }};
public
:访问权限,公有成员。
class MyClass {public: int var;};
private
:访问权限,私有成员。
class MyClass {private: int var;};
protected
:访问权限,受保护成员。
class MyClass {protected: int var;};
virtual
:声明虚函数,支持多态。
class Base {public: virtual void display();};
friend
:声明友元,允许非成员函数访问私有和保护成员。
class MyClass { friend void myFriendFunction(MyClass &obj);private: int var;};
explicit
:显式构造函数,防止隐式转换。
class MyClass {public: explicit MyClass(int var);};
new
:动态分配内存。
int* ptr = new int;
delete
:释放动态分配的内存。
delete ptr;
operator
:重载运算符。
class MyClass {public: MyClass operator+(const MyClass &obj);};
sizeof
:计算对象或类型的字节大小。
int size = sizeof(int);
typename
:声明类型名称,特别是在模板中使用。
template <typename T>class MyClass { T var;};
6. 异常处理关键字
try
:用于捕获异常。
try { // code that may throw an exception 可能抛出异常的代码}
catch
:用于处理异常。
try { // code that may throw an exception 可能抛出异常的代码} catch (const std::exception &e) { // code to handle the exception 处理异常的代码}
throw
:用于抛出异常。
throw std::runtime_error("Error occurred");
7. 其他关键字
namespace
:定义命名空间,用于组织代码,避免命名冲突。
namespace MyNamespace { int var;}
using
:引入命名空间或类型别名。
using namespace MyNamespace;using MyAlias = MyClass;
inline
:建议编译器内联函数,减少函数调用开销。
inline void myFunction() { // code}
const
:声明常量或常量成员函数。
const int var = 10;void myFunction() const;
volatile
:指示变量可能会被程序外因素修改,防止编译器优化。
volatile int var;
enum
:定义枚举类型。
enum Color { RED, GREEN, BLUE };
typedef
:为现有类型定义新的名称。
typedef int myInt;
template
:定义模板,用于泛型编程。
template <typename T>class MyClass { T var;};
constexpr
:用于在编译时计算常量表达式。
constexpr int square(int x) { return x * x;}
nullptr
:空指针常量,取代旧的NULL
。
int* ptr = nullptr;
dynamic_cast
:用于安全地将基类指针转换为派生类指针。
Derived* d = dynamic_cast<Derived*>(basePtr);
static_cast
:用于执行显式转换。
int i = static_cast<int>(3.14);
reinterpret_cast
:用于重新解释类型的比特模式。
int* p = reinterpret_cast<int*>(ptr);
const_cast
:用于移除const
或volatile
属性。
const int* ptr = &value;int* modifiablePtr = const_cast<int*>(ptr);
typeid
:用于在运行时获取对象的类型信息。
typeid(obj).name();
import
:用于模块导入,C++20引入。
import module_name;