第一种实例化方式
- 栈内存中创建:类似声明变量
自定义类型名 对象名[([参数列表])];
Student stu();
Student stu;
注意:
1、stu对象由系统创建并释放,不用担心会出现内存泄漏
2、生命周期只在声明区域的大括号内
3、栈内存的优势是存取速度比较快(仅次于寄存器),缺点是在栈中的数据大小与生存期必须是确定的,缺乏灵活性
第二种实例化方式
- 在堆内存中创建:需要new关键字
Student * p_stu1 = new Student();
Student * p_stu2 = new Student;
auto * p_stu3 = new Student(); //auto自动类型推断(C++ 11之后才能用)
注意:
1、p_stu1是指针,必须使用delete释放
2、使用灵活(可以赋值给全局变量,可以把对象作为函数的返回值返回)
3、用好了功能强大,用不好很危险