【基础】C++中的关键词

一、关键词的概念

C++ 中的关键词是语言保留用来表示特定语法结构的单词,不能作为变量名、函数名或标识符使用。

二、关键词有哪些

在C++中有63个关键字,如下:

关键词 关键词 关键词 关键词 关键词
asm do if return typedef
auto double inline short typeid
bool dynamic_cast int signed typename
break else long sizeof union
case enum mutable static unsigned
catch explicit namespace static_cast using
char export new struct virtual
class extern operator switch void
const false private template volatile
const_cast float protected this wchar_t
continue for public throw while
default friend register true
delete goto reinterpret_cast try

三、关键词的用法

1、数据类型与修饰符关键字

  • bool:布尔类型,只能取值 true 或 false。
  • char:字符类型,占用一个字节,表示单个字符。
  • int:整型,用于存储整数。
  • float:单精度浮点型,表示小数。
  • double:双精度浮点型,比 float 精度更高。
  • void:无类型,通常用于函数没有返回值时。
  • wchar_t:宽字符类型,支持 Unicode 字符。
  • short:短整型,通常占用 2 字节。
  • long:长整型,通常占用 4 或 8 字节。
  • signed:有符号类型,允许正负数。
  • unsigned:无符号类型,只能为非负数。
  • auto:自动类型推导,由编译器根据初始值推断类型。
  • typeid:用于运行时获取变量类型信息。
  • typename:在模板中声明类型参数。

2、控制流关键字(分支、循环、跳转)

  • if:条件判断语句。
  • else:条件不满足时执行的分支。
  • switch:多分支语句结构。
  • case:switch 中的具体分支选项。
  • default:switch 中未匹配任何 case 时执行的分支。
  • for:计数循环语句。
  • while:条件循环语句,先判断后执行。
  • do:条件循环语句,先执行后判断。
  • break:跳出当前循环或 switch。
  • continue:跳过当前循环,进入下一轮。
  • goto:无条件跳转到指定标签(不推荐使用)。
  • return:从函数中返回值或结束函数执行。

3、类与对象相关关键字

  • class:定义一个类。
  • struct:定义结构体,默认成员权限为 public。
  • union:联合体,不同成员共享同一块内存。
  • private:私有权限,只能类内访问。
  • protected:受保护权限,子类可以访问。
  • public:公共权限,任何地方都能访问。
  • virtual:声明虚函数,用于实现多态。
  • this:当前对象的指针。
  • mutable:允许在 const 对象中修改该成员。
  • friend:友元声明,允许访问私有成员。

4、函数与模板关键字

  • inline:请求编译器将函数体插入调用处。
  • explicit:防止构造函数发生隐式类型转换。
  • template:定义模板函数或类。
  • typename:在模板中标识类型参数。
  • operator:重载操作符。
  • const:声明常量或不可修改的变量/函数。

5、类型转换关键字

  • const_cast:移除 const 或 volatile 限定符。
  • static_cast:用于已知类型之间的静态转换。
  • reinterpret_cast:底层强制类型转换(危险)。
  • dynamic_cast:运行时类型转换,用于多态类。

6、内存管理关键字

  • new:动态分配内存并调用构造函数。
  • delete:释放由 new 分配的内存。

7、异常处理关键字

  • try:定义可能抛出异常的代码块。
  • catch:捕获并处理异常。
  • throw:抛出异常。

8、命名空间与链接相关关键字

  • namespace:定义命名空间,避免命名冲突。
  • using:引入命名空间或成员。
  • extern:声明变量或函数在其他文件中定义。
  • register:建议将变量存储于寄存器(已废弃)。
  • static:声明静态变量或函数。

9、其他关键字 / 特殊用途

  • false:布尔类型的假值。
  • true:布尔类型的真值。
  • asm:嵌入汇编代码(依赖编译器)。
  • export:用于模板导出(支持较差,基本废弃)。

四、关键词使用注意事项

  • 避免将关键词用作标识符
    C++ 的关键词是语言保留字,不能用作变量名、函数名或类名,否则会导致编译错误。

  • 谨慎使用 goto
    虽然 goto 仍然是 C++ 的合法语法,但滥用会使代码结构混乱,降低可读性和可维护性,建议尽量避免使用。

  • register 已废弃
    register 关键字曾建议将变量存储在 CPU 寄存器中,但现代编译器优化已很智能,register 关键字已被废弃,不再推荐使用。

  • export 关键字支持有限
    export 用于模板导出,但大部分编译器不支持或支持有限,C++11以后很少使用,甚至被移除。

  • auto 的强大类型推断
    自 C++11 起,auto 可自动推断变量类型,极大简化代码,但过度滥用可能降低代码可读性,建议合理使用。

  • 虚函数与多态
    使用 virtual 声明虚函数可实现运行时多态,但虚函数会带来额外的性能开销,且需要正确管理类的析构函数(通常声明为虚析构函数)。

  • 动态内存管理需注意
    使用 newdelete 动态分配和释放内存时,必须成对使用,避免内存泄漏和悬挂指针。建议优先使用智能指针(如 std::unique_ptrstd::shared_ptr)进行管理。

  • 异常处理的正确使用
    异常机制应只处理真正的错误情况,不建议用异常控制正常流程。捕获异常时,应尽量捕获具体异常类型,避免捕获所有异常导致调试困难。

你可能感兴趣的:(重新学编程,c++,开发语言)