首页 > 试题广场 >

以下代码的输出为: struct A { A() { s

[单选题]
以下代码的输出为()
#include <iostream>
using namespace std;

struct A {
    A() { std::cout << "A"; }
};
struct B {
    B() { std::cout << "B"; }
};

class C {
public:
    C() : a(), b() { std::cout << "C"; }

private:
    B b;
    A a;
};

int main() {
    C();
}
  • ABC
  • CBA
  • BAC
  • ACB
取决于类中的声明顺序
发表于 2019-10-10 17:08:19 回复(0)
注意是在该类中的声明顺序,而不是初始化列表的声明顺序。
发表于 2021-03-14 11:46:55 回复(0)
结构体的调用顺序是根据类中声明的顺序来的,本题中先B b, A a,所以先输出B,然后输出A,,最后再输出C
发表于 2021-04-07 08:44:59 回复(0)
结构体的调用顺序是根据类中声明的顺序来的,本题中先B b, A a,所以先输出B,然后输出A,,最后再输出C
发表于 2022-07-21 18:15:49 回复(0)
该题中B、A是在类中声明而不是在初始化中声明,而初始化列表要后于类中声明,通俗一点讲对象还没创造出来,还没到初始化那里。
发表于 2022-03-29 10:40:10 回复(0)
输出不是初始化的顺序。而是类中声明的顺序
发表于 2021-12-23 11:12:40 回复(0)