C++ 关键字完整介绍

文章目录

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 用于移除constvolatile属性。
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;
// code
label:
// 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:用于移除constvolatile属性。

const int* ptr = &value;
int* modifiablePtr = const_cast<int*>(ptr);

typeid:用于在运行时获取对象的类型信息。

typeid(obj).name();

import:用于模块导入,C++20引入。

import module_name;

 

 

相关推荐

  1. c++ const关键词介绍

    2024-07-22 19:50:02       33 阅读
  2. c/c++的关键字 inline 介绍

    2024-07-22 19:50:02       19 阅读
  3. C++关键字

    2024-07-22 19:50:02       20 阅读
  4. 介绍下volatile关键字

    2024-07-22 19:50:02       32 阅读
  5. C/C++ extern关键字

    2024-07-22 19:50:02       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 19:50:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 19:50:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 19:50:02       45 阅读
  4. Python语言-面向对象

    2024-07-22 19:50:02       55 阅读

热门阅读

  1. SAP 如何修改统驭科目类型

    2024-07-22 19:50:02       15 阅读
  2. 部署Mojo模型:生产环境中的智能自动化

    2024-07-22 19:50:02       15 阅读
  3. Linux的shell的date命令

    2024-07-22 19:50:02       15 阅读
  4. Haproxy

    Haproxy

    2024-07-22 19:50:02      15 阅读
  5. 免费云服务器

    2024-07-22 19:50:02       18 阅读
  6. 智慧文元宇宙

    2024-07-22 19:50:02       14 阅读
  7. Redis和mysql如何保持数据一致?

    2024-07-22 19:50:02       13 阅读