C++学习笔记之二
上一节讲到了构造函数,这一节继续讲解。
1)构造函数可以被重载,如:
Object(){
this->object=5;
}
Object(int object){
this->object=object;
}
//这两个函数是具有相同的函数名,而参数个数或参数类型不同,这就是重载。
2)析构函数
特点:没有返回值,以‘~’打头,且函数在对象销毁时调用(即作用域结束时被调用)//出了作用域即被调用。
全局变量的生命周期在函数结束时仍被调用。
没写构造时系统自动添加构造与析构函数。
对象的析构与构造调用时,其成员的析构与构造也被调用;先调用成员,后释放成员。
成员与对象:成员先调用构造,而析构后调用。
3)基本类型的初始化:
Object():x(1),y(2){}
4)动态创建对象
new/delete代替malloc 与free
优点:
(1)返回值是指针,不需要强制类型转化。
(2)创建对象时可以为其初始化:int *p=new int(5);//初始化为5;delete p;
int* p=new int [5];//开辟了5个int单元,delete []p;
删除后指针置为空,以免误传;
new与delete的作用:
new:先申请一块内存,后调用构造函数
delete:先调用析构,后释放内存。
malloc 得到的是内存而非对象。
注:new多个对象时必须有默认构造函数。
5)继承
class A:public B{
};//定义方式