文章目录
- c++中的对象
- 创建和释放
c++中的对象
c++的所有数据,包括基本变量如int,都是对象。而Java的基本数据类型不是对象。对象是和某类型有关的区域。
有3种方法可以让c++中的对象具有超过了它的定义范围的生命周期。
- 通过复制从函数中返回它(可能有限制)
- 通过引用从函数中返回它(不好,见下面的幻灯片)
- 将其作为堆资源从函数中返回(今天的课)也就是new和delete
创建和释放
需要在堆中创建,然后手动释放。使用new创建,会调用该对象的构造函数。所以用法类似使用类创建对象。加一个new而已。释放的时候,是delete 名字。
类似C (malloc/free)。堆比栈大
#include <iostream>
#include <vector>
int main() {
int* a = new int{4};
std::vector<int>* b = new std::vector<int>{1,2,3};
std::cout << *a << "\n";
std::cout << (*b)[0] << "\n";
delete a;
delete b;
return 0;
}