I have such code
class A
{
A() = default;
};
class B
{
B();
};
B::B() = default;
int main()
{
A a{}; //1
A a1; //2
B b{}; //3
B b1; //4
}
Lines 2, 3, 4 generates compilation error as expected. But line 1 works! Please explain
- Difference between lines 1 and 2? In my opinion both of them should use default constructor and generate the same error.
- Difference between constructors in A and B classes.