return length;
}
/*
程序的主函数
*/
int main( )
{
Line line;
line.setLength(6.0); // 设置长度
cout << "Length of line : " << line.getLength() <<endl;
return 0;
}
【注】这里的构造函数是无参数的,当然我们也可以把它定义成参数的;
上述代码的结果是:
定义
析构函数与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作,比如释放分配的空间,关闭文件等;
【注】析构函数的作用并不是删除对象,在对象撤销它所占用的内存之前,做一些清理的工作。清理之后,这部分内存就可以被系统回收再利用了;
特点
1.析构函数名与类名相同,只是再函数名前面加一个位取反符号~;
2.析构函数不能带任何参数,也没有返回值(包括void);
3.只能有一个析构函数,它是不能被重载的;
4.每个类有应该有一个析构函数,如果没有显式定义,那么系统会自动生成一个默认的析构函数(默认的析构函数什么也不做);
5.析构函数不能被显式调用,只能由系统自动调用;
定义格式
class <类名>
{
public:
~<类名>();
};
<类名>::~<类名>()
{
//函数体
}
实例代码
下面通过一个实例代码来说明析构函数的使用方法:
#include
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); // 构造函数声明
~Line(); // 析构函数声明
private:
double length;
};
/*
成员函数定义,包括构造函数,析构函数
*/
Line::Line(void)
{
cout << “Object is being created” << endl;
}
Line::~Line(void)
{
cout << “Object is being deleted” << endl;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
/*
程序的主函数
*/
int main( )
{
Line line;
line.setLength(6.0); // 设置长度
cout << "Length of line : " << line.getLength() <<endl;
return 0;
}
最后
面试题文档来啦,内容很多,485页!
由于笔记的内容太多,没办法全部展示出来,下面只截取部分内容展示。
1111道Java工程师必问面试题
MyBatis 27题 + ZooKeeper 25题 + Dubbo 30题:
Elasticsearch 24 题 +Memcached + Redis 40题:
Spring 26 题+ 微服务 27题+ Linux 45题:
Java面试题合集:
Elasticsearch 24 题 +Memcached +** Redis 40题:
[外链图片转存中…(img-7kuUmRxd-1719250782523)]
Spring 26 题+ 微服务 27题+ Linux 45题:
[外链图片转存中…(img-VxHftKxF-1719250782524)]
Java面试题合集:
[外链图片转存中…(img-bCWXSkEa-1719250782524)]