目前在我的作业中遇到这个问题。我相信只有4,7个不正确(在Visual Studio中,它们不会引发错误)。但老实说,我不确定为什么他们是唯一的。由于3作品,我认为他们也将工作,但事实并非如此。有什么建议吗?
struct A {
double x;
A(double x = 1) : x(x) { }
};
struct B {
double x;
B(A a = 2.0) : x(a.x) { }
};
struct C {
double x;
C(B b = B(3)) : x(b.x) { }
};
int main() {
A a; // (1)
A a = 4; // (2)
B b; // (3)
B b = 5; // (4)
B b(a); // (5) (a is an object of class A)
C c; …Run Code Online (Sandbox Code Playgroud)