阅读下面 C++ 代码,输出结果为()
#include <iostream> using namespace std; class base1 { private: int a, b; public: base1(int i) : b(i + 1), a(b) {} base1():b(0), a(b) {} int get_a() { return a; } int get_b() { return b; } }; int main() { base1 obj1(11); cout << obj1.get_a() << " " << obj1.get_b() << endl; return 0; }
官方解析:
初始化列表的初始化顺序按照成员的声明顺序而来。因此 obj(11) 先初始化 a,但 a 的值由 b 决定,b 此时没有初始化,因此为随机值。然后初始化 b 为 12。因此答案为随机值,12。B 选项正确。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2021-02-18 Qt实用技巧:将QWidget作为输入窗口,接收键盘消息、输入法并且控制输入法悬浮工具栏位置控制
2021-02-18 项目实战:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)
2021-02-18 c++ 重定位输出到DOS