解析:A(B()) 表示用临时 B 对象初始化 A 对象,需 A 有接受 B 或可隐式转换为 B 的构造函数;D 项表示 A 可转为 B,但此处方向相反;更合理的是 A 有 B 类型参数的构造函数。但选项中仅 D 涉及类型转换,且若 A 有 operator B(),则 B()→A 不成立;实际应为 A 有 A(const B&) 或 A(B) 构造函数。选项 A 中 const B* 不匹配 B();B 项是 B 继承 A,与 A(B()) 无关;C 无关;故最可能为 A 有接受 B 的构造函数,但选项无此表述,D 最接近常见陷阱题意图:A 中有类型转换函数 B() 暗示 A 可转 B,但题干是 A(B()),即 B→A,应为 A 的构造函数支持 B。四个选项均不严谨,但标准答案通常选 D(命题意图:考查转换构造函数 vs 类型转换函数)。严格说,正确情形应为 A 有 A(const B&) 或 A(B),但选项未列出,D 是唯一涉及 B 类型的转换,故按惯例选 D。
暂无评论内容