C++选择题练习(一)

下⾯程序的运⾏结果是什么(D)

A.输出1 1

B.输出2 2

C.编译报错

D.输出1 随机值

E.输出1 2

F.输出 2 1

#include<iostream>

using namespace std;

class A

{

public:

A(int a)

:_a1(a)

, _a2(_a1)

{}

void Print()

{

cout <<_a1 <<" " <<_a2<< endl;

}

private:

int _a2 = 2; //声明

int _a1 = 2;

};

int main()

{

A aa(1);

aa.Print();

}
分析:首先拿1调用构造函数A(int a)直接初始化aa,初始化aa时,由于是初始化列表,初始化顺序是看声明顺序,先声明的先初始化, _a2先被声明,那么先初始化_a2,拿此时aa对象中还未被初始化的_a1随机值去初始化_a2,接着拿a的值1去初始化_a1。注意,与构造函数相比,构造函数的初始化顺序是先定义的先初始化

相关推荐
devilnumber6 小时前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
unicrom_深圳市由你创科技7 小时前
哪些控制逻辑应该放在 PLC,哪些放在上位机?
c++
asdfg12589638 小时前
JavaBean是什么?怎么理解?有什么用途?
java·开发语言
dsyyyyy11018 小时前
JavaScript变量
开发语言·javascript·ecmascript
玖玥拾9 小时前
C/C++ 基础笔记(十三)继承
c语言·c++·继承
z落落9 小时前
C#WinForm 窗体切换与窗体传值(登录跳转案例)+WinForm 窗体传值(从上往下传、从下往上传)
开发语言·windows·c#
allway29 小时前
How to Echo Multiline to a File in Bash [3 Methods]
开发语言·chrome·bash
weixin_462446239 小时前
手把手教你用 Bash 脚本自动更新 /etc/hosts —— 自动绑定网卡 IP 与节点名
开发语言·tcp/ip·bash
一个梦醒了9 小时前
安装git bash选项推荐
开发语言·git·bash
ct97810 小时前
React 状态管理方案深度对比
开发语言·前端·react