下列关于 C++ 中类的描述,正确的是( )。
仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。
【考点】默认构造函数|析构函数规则|类与结构体差异
本题考查《GESP 大纲》C++ 编程模块中“类定义与对象”部分(六级常考)。命题人专挖两类考生:把“无用户声明构造函数”误以为“无默认构造函数”,以及把“析构函数”当成普通函数去重载。这类题在 C++ 六级中占比约 15%,专门卡住那些背了“构造函数可重载”但不懂“析构函数零参”的选手。
排除法最快:B 错在析构函数不能重载(零参数、无返回类型);C 错在成员默认是 private,可写 protected/public;D 错在 struct 默认 public,class 默认 private。只有 A 符合标准:无用户构造函数时编译器必提供默认构造函数。通法:判断类成员默认权限、构造函数重载规则、析构函数签名,这三项是 C++ 类题的“铁律”。遇到“类”字,先想默认 private;遇到“struct”,先想默认 public;遇到构造函数,先想缺了就补。
选项 B 是最大陷阱:很多考生背了“函数可重载”就惯性迁移,但析构函数是 C++ 唯一不可重载的特殊函数;选项 D 偷换概念:struct 默认 public,class 默认 private,这是 C++ 标准核心差异,六级常考;选项 C 看似绝对,实则混淆了“访问控制列表”与“类定义”的默认行为。只背结论不读标准,必把 B 或 D 选对。
若把题目改成“struct S 中成员默认访问权限”,答案会翻转;若改成“类中无构造函数时成员初始化列表”,则考默认构造体内部行为。刷到 C++ 类题先问自己:默认权限是私还是公?析构能重载吗?构造函数缺了就补吗?答对这三句,基本不会错。