我有一个关于隐式构造函数的问题。所以假设我有以下场景:
struct MyStruct1 {
bool myBool1 = false;
bool myBool2 = false;
MyStruct1() = default;
MyStruct1(bool val)
: myBool1(val)
, myBool2(val)
{}
};
struct MyStruct2 {
MyStruct1 myStruct1;
};
现在我想知道的是下面的 1 和 2 是否等价:
1)
int main() {
MyStruct2 myStruct2;
myStruct2.myStruct1 = true;
}
int main() {
MyStruct2 myStruct2;
myStruct2.myStruct1 = MyStruct1{true};
}
这就是隐式构造函数的工作方式吗?或者这里还有其他东西在起作用?