1、一个类或者是有构造函数的对象。
①类名 对象名; ->默认调用 对象名() 这个构造函数,在栈中存在对象名,在堆中存在实际对象。
②类名 对象名(一个以上参数); ->默认调用对应的构造函数,在栈中存在对象名,在堆中存在实际对象。
③类名 对象名(); ->不调用任何构造函数,Myclass a(), int func() 对比 Myclass a() 相当于申明一个函数 这个函数的返回类型是Myclass。
2、使用new 关键字创建对象
① Myclass *p1 = new Myclass();
② Myclass *p2 = new Myclass;
- ① ② 都是调用默认构造函数
- 对与内置类型,加括号可以进行初始化
int *p3 = new int(1); // 1
int *p4 = new int(); // 0
int *p5 = new int; // 0