1.析构函数
~类名()
~Student()
**********************************************************************************************
***************************************************************************************
***************************************************************************************
***************************************************************************************
析构函数代码演示 点击打开链接
http://www.imooc.com/video/7639
***************************************************************************************
***************************************************************************************
***************************************************************************************
2.深拷贝浅拷贝
***************************************************************************************
深拷贝
深拷贝 将所需的内存也进行拷贝,如下图所示。
***************************************************************************************
/************************************************************************/
/* 定义一个Student类,
包含
名字一个数据成员,
定义
无参构造函数、
有参构造函数、
拷贝构造函数、
析构函数
及对于名字的封装函数
在main函数中实例化Student对象,并访问相关函数,观察运行结果。 */
/************************************************************************/
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
class Student
{
public:
Student();//无参构造函数
Student(string name);//有参构造函数
Student(const Student &stu);//拷贝构造函数
~Student();//析构函数
string getName();//对于名字的封装函数
void setName(string name);
private:
string m_strName;
};
Student::Student()
{
m_strName = "";
cout << "Student();//无参构造函数" << endl;
}
Student::Student(string name):m_strName(name)
{
cout << "Student(string name);//有参构造函数" << endl;
}
Student::Student(const Student &stu)
{
cout << "Student(const Student &stu);//拷贝构造函数" << endl;
}
Student::~Student()
{
cout << "~Student();//析构函数" << endl;
}
string Student::getName()
{
return m_strName;
}
void Student::setName(string name)
{
m_strName = name;
}
int main(void)
{
Student *stu1 = new Student;
Student stu2;
Student stu3 = stu2;
Student stu4(stu2);
stu1->setName("maichel");
cout << stu1->getName() << endl;
delete stu1;
stu1 = NULL;
system("pause");
}