tangjikede 2020-01-17
c++对象初始化 就是去调用构造函数来完成初始化操作;
构造函数有无参数的构造函数、有参数构造函数、默认构造函数(编译器给我们实现的)...(拷贝构造函数之后说)
注意:默认构造函数只有在我们自己没有声明构造函数时编译器才会给我们制造一个没有参数的构造函数,如果我们定义了,编译器就不会管了
例子:看下边的C类,编译器并不会给我们初始化一个默认的构造函数
#include <iostream>class A //默认构造函数 A() 这是在编译时,编译器给我们实现的 { }; class B { public: B() {} //无参数构造函数 }; class C { public: C(int i) {} //有参数构造函数 }; class D { public: D() {} //无参数构造函数 D(int i) {} //有参数构造函数 }; int main() { A a; B b; C c; //error 只有在没有构造函数的情况下编译器才会给我们制造一个默认的无参数的构造函数 C c1(1); //ok D d,d1(0); //ok return 0; }
报错说:找不到构造函数 C::C() 来初始化对象c