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(); //ok
D d,d1(); //ok
return ;
}
报错说:找不到构造函数 C::C() 来初始化对象c
目录
- c++(翁恺浙大公开课) 笔记0
- static在c\c++中的作用(翁恺c++公开课[28-29]学习笔记)
- c++对象初始化(翁恺c++公开课[10])
- c++构造函数的初始化列表(翁恺c++公开课[13])
- c++继承:公有、私有、保护
- c++子类父类关系(翁恺c++公开课[15-16]学习笔记)
- c++拷贝构造函数(翁恺c++公开课[26-27]学习笔记)
- c++多态性及多态的内部实现(翁恺c++公开课[23-24])
- c++中的运算符重载operator1(翁恺c++公开课[30]学习笔记)
- c++中的运算符重载operator2(翁恺c++公开课[31-33]学习笔记)
- c++模板(翁恺c++公开课[34-35]学习笔记)
- 最好不要在头文件中写函数定义