C++ 关键词:class 来自cppreference.com < cpp | keyword C++ 语言 标准库头文件 自立与有宿主实现 具名要求 语言支持库 概念库 (C++20) 诊断库 工具库 字符串库 容器库 迭代器库 范围库 (C++20) 算法库 数值库 本地化库 输入/输出库 文件系统库 (C++17) 正则表达式库 (C++11) 原子操作库 (C++11) 线程支持库 (C++11) 技术规范 C++ 语言 一般主题 预处理器 注释 关键词 转义序列 流程控制 条件执行语句 if switch 重复语句(循环) for 范围 for (C++11) while do-while 跳转语句 continue - break goto - return 函数 函数声明 Lambda 函数声明 inline 说明符 异常规定 (C++20 前) noexcept 说明符 (C++11) 异常 throw 表达式 try-catch 块 命名空间 命名空间声明 命名空间别名 类型 基础类型 枚举类型 函数类型 复合类型 联合体类型 说明符 decltype (C++11) auto (C++11) alignas (C++11) const/volatile constexpr (C++11) 存储期说明符 初始化 默认初始化 值初始化 零初始化 复制初始化 直接初始化 聚合初始化 列表初始化 (C++11) 常量初始化 引用初始化 表达式 值类别 求值顺序 运算符 运算符优先级 替代表示 字面量 布尔 - 整数 - 浮点 字符 - 字符串 - nullptr (C++11) 用户定义 (C++11) 工具 属性 (C++11) 类型 typedef 声明 类型别名声明 (C++11) 类型转换 隐式转换 - 显式转换 static_cast - dynamic_cast const_cast - reinterpret_cast 内存分配 new 表达式 delete 表达式 类 类声明 构造函数 this 指针 访问说明符 friend 说明符 特定于类的函数性质 虚函数 override 指定符 (C++11) final 说明符 (C++11) explicit (C++11) static 特殊成员函数 默认构造函数 复制构造函数 移动构造函数 (C++11) 复制赋值 移动赋值 (C++11) 析构函数 模板 类模板 函数模板 模板特化 参数包 (C++11) 杂项 内联汇编 C++ 的历史 关键词 alignas(C++11) alignof(C++11) and and_eq asm auto bitand bitor bool break case catch char char8_t(C++20) char16_t(C++11) char32_t(C++11) class compl concept(C++20) const consteval(C++20) constexpr(C++11) constinit(C++20) const_cast continue co_await(C++20) co_return(C++20) co_yield(C++20) decltype(C++11) default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new noexcept(C++11) not not_eq nullptr(C++11) operator or or_eq private protected public register reinterpret_cast requires(C++20) return short signed sizeof static static_assert(C++11) static_cast struct switch template this thread_local(C++11) throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq 具有特殊含义的标识符 final(C++11) override(C++11) import(C++20) module(C++20) 用法 声明类 声明有作用域枚举类型 (C++11 起) 在模板声明中,class 可用于引入类型模板形参与模板模板形参 若作用域中存在具有与某个类类型的名字相同的名字的函数或变量,则 class 可附于类名之前以消歧义,这产生一个详述类型说明符 示例 运行此代码 class Foo; // 类的前置声明 class Bar { // 类的定义 public: Bar(int i) : m_i(i) {} private: int m_i; }; template <class T> // 模板实参 void qux() { T t; } int main() { Bar Bar(1); class Bar Bar2(2); // 详述的类型 }