最近在学C++,在内存管理这里遇到几个点,记录一下加深记忆。
创建类对象的方法
C++中有两种创建对象的方法,一种是直接声明,另一种则是使用new
关键字,虽然作用相同,但是它们底层的存储方式却完全不同。在此之前,我们先了解一下C++程序的存储形式。
C++程序的内存格局通常分为四个区:
1. data area(全局数据区)
2. code area (代码区)
3. stack area (栈区)
4. heap area (堆区)
其中,堆区就是“自由存储区”,我们的new
就是在堆区中申请内存的。回归正题,C++的第一种类对象的创建方法,直接声明:
#include <iostream>
using namespace std;
class Demo{
public:
Demo(char* str)
{
name = str;
cout << this->name << " come out" << endl;
}
private:
string name;
};
int main(){
Demo object1("object1");