默认构造函数的形式是唯一的,比如:class A {A(); // 这是唯一的默认构造函数}; 自定义的构造函数带有参数列表,不会自动调用,需要显示调用。比如class A{B();B(int i);};那么B b;会自动调用B();B b(1)会调用B(int i)
你自己定义了,编译器就存在两个构造函数了。这时,编译器就根据环境调用构造函数了。