C++注意:本笔记来自网易云课堂学习
构造函数 constructor
没有返回类型,名称和类的名称相同
Class X
{
Public:
X()
}
构造函数可以有参数
Class Tree
{
}
Tree(int a)
Tree t(12)
析构函数
~Tree(),在对象结束之前会调用析构函数
goto:jump;
X a;
Jump:
…这样是错误的,因为jump跳过了初始化,但是会调用析构函数,但是没有构造函数是没法析构的,所以编译会报错。
Default constructor是没有参数的构造函数 ,不给参数的时候默认使用default constructor
有参数的构造函数不是default constructor
New(new类的时候会调用构造函数)
Delete
Delete
Delete[ ] p(new有【】delete也有【】)
int *p= New int [10] 开辟是10个int空间给p指针
delete[] p 方括号告诉程序p指的方向有多个东西,不带方括号只会析构一个对象。
eg:
int *p=new int;
int *a=new int [10];
student *q=new student();
student *r=new student(10);
delete p;
delete[] a;
delete q;
delete r(只会析构一个,但是空间都收回了,会有错误);
delete[] r;
如果new了但是没有delete那么会有内存泄漏,程序一直在跑