【发布时间】:2020-03-16 10:10:57
【问题描述】:
考虑这个类:
#include <iostream>
struct foo {
int a = 42;
int b = bar();
int bar() { return a; }
};
int main(){
foo f;
std::cout << f.a << " " << f.b;
}
它打印出预期的42 42。标准是否允许在默认成员初始化程序中调用成员函数?
以下我希望是未定义的:
struct broken {
int a = bar();
int b = 42;
int bar() { return b; }
};
【问题讨论】:
标签: c++ constructor initialization language-lawyer member-initialization