首页 > 生活

析构函数

更新时间:2025-05-13 12:48:45 阅读: 评论:0

一句话搞懂:

1)·构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。

·析构函数:主要作用在于对象销毁前系统自动调用,执行一些清理工作。

2)和构造函数位于语法区别是前面有个~。

3)构造和析构都是必须有的实现,如果我们自己不提供,编译器会提供一个空实现的构造和析构

析构函数语法:~类名(){

1.析构函数,没有返回值也不写void

⒉函数名称与类名相同,在名称前加上符号~3.析构函数不可以有参数,因此不可以发生重载

4.程席在对象铛轺前今白动调用析构.无须千动调用.而日只会调用—次

详细解释:类的构造函数

类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。

构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。

下面的实例有助于更好地理解构造函数的概念:

实例博客之家#include <iostream> using namespace std; class Line { public: void setLength( double len ); double getLength( void ); Line(); // 这是构造函数 private: double length; }; // 成员函数定义,包括构造函数 Line::Line(voexcel转pdfid) { cout << "Object is being created" << 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; }

当上面的代码被编译和执行时,它会产生下列结果:

Object is being createdLength of line : 6带参数的构造函数

默认的构造函数没水白菜有任何参数,但如果需要,构造函数也可以带有参数。这样在创建对象时就会给对象赋初始值,如下面的例子所示:

实例#include <iostream> using namespace std; class Line { public: void setLength( double len ); double getLength( void ); 桌面备忘录 Line(double len); // 这是构造函数 private: double length; }; // 成员函数定义,包括构造函数 Line::Line( double len) { cout << "Object is being created, length = " << len << e长生殿原文ndl; length = len; } void Line::setLength( double len ) { length = len; } double Line::getLength( void ) { return length; } // 程序的主函数 int main( ) { Line line(10.0); // 获取默认设置的长度 cout << "Length of line桂林四日游 : " << line.getLength() <<endl; // 再次设置长度 line.setLength(6.0); cout << "Length of line : " << line.getLength() <<endl; return 0; }

当上面的代码被编译和执行时,它会产生下列结果:

Oxbitbject is bein店铺急转g created, length = 10Length of line : 10Length of line : 6使用初始化列表来初始化字柜子尺寸段

使用初始化列表来初始化字段:

Line::Line( double len): length(len) { cout << "Object is being created, length = " << len << endl; }

上面的语法等同于如下语法:

L太阁立志传4ine::Line( double len) { length = len; cout << "Object is being created, length = " << len << endl; }

假设有一个类 C,具有多个字段 X、Y、Z 等需要进行初始化,同理地,您可以使用上面的语法,只需要在不同的字段使用唐吉坷德逗号进行分隔,如下所示:

C::C( double供养三宝 a, double b, double c): X(a), Y(b), Z(c) { .... }

类的析构函数

类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。

析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。

空气净化器哪个牌子好下面的实例有助于更好地理解析构函数的概念:

实例#include <iostream> using namespace std; class Line { public: void setLength( double len ); double getLength( void ); Line(); // 这制作u盘启动盘是构造函数声明 ~Line(); // 这是析构函数声明 private: doub本机的ip地址le length; }; // 成员函数定义,包括构造函数 Line::Line(void) { cout << "Object is being created" << endl; } Line::~Line(void) { cout << "Object is being de人文社科类leted" << endl; } void Line::setLength( doubl无线网络设置e 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; }

当上面的代码被编译和执行时,它会产生下列结果:

Object is being createdLength of line : 6Object is being deleted

本文发布于:2023-05-27 13:31:34,感谢您对本站的认可!

本文链接:http://www.ranqi119.com/ge/85/136443.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26|友情:优美诗词|电脑我帮您|扬州装修|369文学|学编程|软件玩家|水木编程|编程频道