文章目录

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;
}