艺考网
全国站

构造函数和析构函数

xunaa
2024-10-07 07:06:03
编辑说
概念:
构造函数是用于创建对象的特殊成员函数。
影响:
为对象分配空间
为数据成员分配初始值
请求额外资源
特征:
创建对象时,系统自动调用构造函数,不能在程序中直接调用。
构造

概念:

构造函数是用于创建对象的特殊成员函数。

影响:

为对象分配空间

为数据成员分配初始值

请求额外资源

特征:

创建对象时,系统自动调用构造函数,不能在程序中直接调用。

构造函数名称与类名称相同。

构造函数可以是内联函数、重载函数和具有默认参数值的函数。

构造函数可以有任何类型的参数,但不能有返回类型。

例如:

A类{

公共:

A(){}//不带参数的构造函数

构造函数和析构函数

A(int a=1,int b=2){}//带默认参数的构造函数

私人:

整数a,b;

};

无效主函数()

{ A a1;//调用不带参数的构造函数

A a2();//使用默认参数调用构造函数,并将a和b的值更改为

A a3(3,7);//调用默认参数的构造函数,将a和b的值改为3, 7

}

复制构造函数

概念特征:

复制构造函数是一种特殊的构造函数,其形参是该类的对象引用。在以下三种情况下会自动调用:

一个对象用于在定义语句中初始化另一个对象。

以按值调用方式将一个对象作为参数传递给另一个对象时,制作对象的副本。

生成一个临时对象作为函数的返回结果。

构造函数和析构函数

班级班级名称

{ 公共:

类名(形参); //构造函数

类名(类名对象名); //复制构造函数

.

};

类名: 类名(类名对象名) //复制构造函数的实现

{函数体}

例子:

A级

{私人:

整数x,y;

公共:

A(int a=0,int b=0)

{x=a;y=b;}

构造函数和析构函数

A(A aa)//复制构造函数

{x=aa.a;y=aa.b;}

}

默认复制构造函数

该构造函数的作用是,以待创建对象的各个数据成员的值作为初始值,初始化该对象相应的数据成员。

析构函数

概念:

析构函数的名称是符号“~”加上类名。析构函数没有参数,也没有返回值。一个类中只能定义一个析构函数,因此析构函数不能被重载。

影响:

析构函数是用于取消对象的成员函数。当对象的作用域结束时,系统自动调用析构函数。

特征:

如果一个对象是在函数体中定义的,则当函数结束时会自动调用该对象的析构函数。

如果一个对象是使用new操作符动态创建的,那么当使用delete操作符释放该对象时,delete会自动调用析构函数。

用户评论

你身上有刺,别扎我

这篇文章终于解释清楚了构造函数和析构函数的区别!

    有11位网友表示赞同!

执念,爱

感觉还是挺有用的,以后编程的时候会注意这两个函子的用法。

    有13位网友表示赞同!

回忆未来

学习C++还是要好好了解这些基本概念啊,否则写代码就容易出bug。

    有13位网友表示赞同!

走过海棠暮

读完这篇文章后对构造函数和析构函数有了更深入的理解了!

    有5位网友表示赞同!

我绝版了i

真没想到构造函数里还要有不同的初始化方式,太强了。

    有5位网友表示赞同!

愁杀

重点学习对象的生命周期吧,和这些函数密切相关。

    有14位网友表示赞同!

屌国女农

构造函数和析构函数啊,要好好记住他们的用法。

    有6位网友表示赞同!

剑已封鞘

这个例子写的非常好,很直观地帮助理解了这两个函数的功能!

    有5位网友表示赞同!

各自安好ぃ

以前总觉得构造函数和析构函数有些莫名其妙,现在明白了!

    有19位网友表示赞同!

何年何念

学习C++编程基础,构造函数和析构函数非常重要。

    有17位网友表示赞同!

算了吧

感觉学习这些基础知识真不容易,还是要多加练习才能掌握!

    有5位网友表示赞同!

秘密

对一个对象来说,生命周期的理解是至关重要的。

    有16位网友表示赞同!

日久见人心

如果能用更通俗的语言讲解的话,会更好理解。

    有19位网友表示赞同!

╯念抹浅笑

希望以后还能看到更多关于C++基础知识的文章介绍!

    有9位网友表示赞同!

入骨相思

感觉学习程序设计的重点就是掌握这些函数的使用方法。

    有20位网友表示赞同!

念旧情i

要学会如何正确使用构造函数和析构函数才能写出高质量的代码!

    有20位网友表示赞同!

我家的爱豆是怪比i

对象的生命周期管理太重要了,一定要重视构造函数和析构函数!

    有20位网友表示赞同!

免责声明
本站所有收录的学校、专业及发布的图片、内容,均收集整理自互联网,仅用于信息展示,不作为择校或选择专业的建议,若有侵权请联系删除!

大家都在看

构造函数和析构函数

构造函数和析构函数

概念: 构造函数是用于创建对象的特殊成员函数。 影响: 为对象分配空间 为数据成员分配初始值 请求额外资源 特征: 创建对象时,系统自动调用构造函数,不能在程序中直接调用。 构造
2024-10-07
SOLIDWORKS提示:无法创建toolboxlibrary对象解决办法

SOLIDWORKS提示:无法创建toolboxlibrary对象解决办法

事实上,这个问题的发生是因为微软的KB 3072630补丁。网上有卸载补丁的解决方案,但是有些系统无法卸载这个补丁。只能用这个万能的方法来解决。第一步:先关闭solidworks软件,然
2024-10-07
现代C++ 移动构造、移动赋值、复制构造、复制赋值

现代C++ 移动构造、移动赋值、复制构造、复制赋值

c++primer中说:构造函数是一种特殊的成员函数。只要创建了类类型的新对象,就必须执行构造函数。构造函数的工作是确保每个对象的数据成员都有适当的初始值。 构造函数与其他函
2024-10-07
一篇文章了解常用Linux shell 命令的4 种使用方法

一篇文章了解常用Linux shell 命令的4 种使用方法

read命令 读取:的基本格式 读取[-rs] [-a ARRAY] [-d delim] [-n nchars] [-N nchars] [-p 提示符] [-t 超时] [var1 var2 var3.] -n(无换行符) -p(提示语句) -n(字符数) -t(
2024-10-07
String.valueOf(Object) 与String.valueOf(Object) 的比较对象.toString(对象)

String.valueOf(Object) 与String.valueOf(Object) 的比较对象.toString(对象)

String.valueOf(Object) 和Objects.toString(Object) 这两个方法本质上做同样的事情: 对传入的对象调用toString() 方法。在这种情况下,只要字符串“null”不为null,或者将null
2024-10-07
精通英语:直到

精通英语:直到

2.他们工作到八点钟。 3.她昨晚十点才睡觉。昨晚她直到十点才睡觉。 4.直到听到闹钟声我才醒来。 (点击) 直到它的同义词是直到。 作为准备。随后是n./n.phr。它的意思是直到
2024-10-07
初中英语考试70要求句型详解:till/until和not

初中英语考试70要求句型详解:till/until和not

4. not.until.句型中的强调句,无需倒置词序。 他发明了许多治疗伤员的新方法,但直到战后他才做出了最重要的发现。 5. not.until.句型与其他句型的比较 not.until. 句型总是表
2024-10-07
在强调句中使用not.until. 结构

在强调句中使用not.until. 结构

大家一定要熟悉强调句的使用,尤其是作为形式主语的强调句型。但当句子中出现not.until.时,很多朋友还是会感到困惑。今天我就和大家一起探讨一下not…until…强调句的用法。
2024-10-07
直到和不.直到的用法总结

直到和不.直到的用法总结

til的意思是“直到”,表示动作持续到某一时间点,常与进行性动词连用; not.until 的意思是“直到.”,表示该动作要到某个时间点才会发生,否则不会发生。它经常与瞬态动词一起使用
2024-10-07
英语not.until用于强调句型的用法

英语not.until用于强调句型的用法

not.until 用于强调句型的用法 英语语法和句法重点句子 有这么一道测试题,涉及到not…until…句型: 他摘下墨镜并不是__________,我意识到他是一位著名歌手。 A. 当,那个B. 直
2024-10-07