C++远航之封装篇——默认构造函数、初始化列表、拷贝构造函数



1、默认构造函数

  • 没有参数;
  • 若有参数,则一定全部都有默认的参数值。




2、初始化列表

(1)概念


(2)特性

  • 建议用初始化列表来初始化数据成员。
  • 初始化列表先于构造函数执行;
  • 初始化列表只能用于构造函数;
  • 初始化列表可以同时初始化多个数据成员。


(3)必要性

  • 如果需要给const修饰的数据成员赋值,必须用初始化列表。

    



3、拷贝构造函数

(1)为什么要拷贝构造函数?见博客http://blog.csdn.net/zhhymh/article/details/6249219


(2)拷贝构造函数的定义格式

  • 如果没有自定义的拷贝构造函数,则系统自动生成一个默认的拷贝构造函数;
  • 当采用复制初始化实例化对象时,系统自动调用拷贝构造函数。


  • 以下是函数传参时,调用拷贝构造函数。(这里没有剪切完整的代码)





4、构造函数总结

构造函数分为无参构造函数、有参构造函数

  • 无参构造函数是默认构造函数;
  • 有参构造函数分为参数带默认值,参数无默认值;其中如果参数带默认值,也算是默认构造函数




构造函数和拷贝构造函数都是自动调用的

  • 我们先编写好这些函数,然后当实例化或者复制初始化时,会自动调用这些函数。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能测试流程-各阶段的工作

1 性能测试流程1.1 性能测试计划阶段测试计划阶段主要工作如下:1、明确测试对象2、定义测试目标3、定义测试通过的标准4、规划测试进度5、规划测试参与人员(需求、开发、测试、运维和配置)6、申请测试资源7、风险控制1.2 性…

恢复IE8自带的源代码查看器

各种知名不知名的文本编辑软件安完了之后,IE8的默认源代码编辑器也被改了很多次其实IE8默认已经不使用记事本了,带有语法高亮和行号功能的查看器很好用,堪比FF的查看器了。而且占用资源很少,跑起来很快,所以&#xff0…

C++远航之封装篇——析构函数

一、为什么需要析构函数? 见博客:http://blog.csdn.net/zhhymh/article/details/6239832 二、析构函数的理解 1、格式 2、必要性 释放资源。 3、什么时候调用? delet p时会调用析构函数;程序返回时,也会调用析构函数…

生成的数据库脚本没有注释?

1,选择Database->Generate Database 选中Generate name in empty comment就可以了转载于:https://www.cnblogs.com/hongjiumu/archive/2012/08/02/2620379.html

M.GetSum(); Myclass::GetSum(); // 调用类的静态成员函数。转载于:https://www.cnblogs.com/sunbines/p/11227051.html

HDU 1312

View Code 1 #include<stdio.h>2 #include<stdlib.h>3 #include<string.h>4 以前用BFS写过&#xff0c;这次改用DFS写发现DFS掌握的不好&#xff0c;挑了好久才过&#xff0c;今下午才AC了两道题&#xff0c;还要加紧练习DFS&#xff01;5 int row,col,coun…

C++远征之封装篇——对象数组,对象成员

一、对象数组 &#xff08;1&#xff09;如下&#xff0c;delet [ ]p时&#xff0c;会调用三次析构函数 &#xff08;2&#xff09;细节 实例化对象数组时&#xff0c;每一个对象的构造函数都会被执行。销毁对象数组时&#xff0c;每一个对象的析构函数都会被执行。 二、对象成…

linux sudo 免密码

修改/etc/sudoers文件为使用sudo命令的用户格式 username ALL(ALL) NOPASSWD: ALL转载于:https://www.cnblogs.com/xuedong09/p/3454794.html

shell 替换字符串的几种方法,变量替换${},sed,awk

变量a是一个带空格的字符串&#xff0c;现在用"hdpusr400"替换变量a中的"hduser302"&#xff1a; 1 [liusiyilocalhost ~]$ echo $a2 -rw-r----- 3 hduser302 hduser302 3336 2019-07-12 17:35 /apps/hduser302/student/properties/xxyy/IMP_00004_XXYY_US…

基于sqlite数据库的C语言编程

一 SQLITE 操作入门 sqlite 提供的是一些 C 函数接口&#xff0c;你可以用这些函数操作数据库。通过使用这些接口&#xff0c;传递一些标准 sql 语句&#xff08;以 char * 类型&#xff09;给 sqlite 函数&#xff0c; sqlite 就会为你操作数据库。 sqlite 跟 MS 的 access 一…

ehcache memcache redis 三大缓存男高音

2019独角兽企业重金招聘Python工程师标准>>> 最近项目组有用到这三个缓存&#xff0c;去各自的官方看了下,觉得还真的各有千秋&#xff01;今天特意归纳下各个缓存的优缺点&#xff0c;仅供参考&#xff01; Ehcache 在java项目广泛的使用。它是一个开源的、设计于…

Linux进程的诞生和消亡

1、进程的诞生 &#xff08;1&#xff09;、进程0和进程1 &#xff08;内核里边的固有的&#xff09; &#xff08;2&#xff09;、fork函数和vfork函数用于新进程的产生 2、进程的消亡 &#xff08;1&#xff09;、正常终止和异常终止 &#xff08;2&#xff09;、进程在运行时…

C++远航之封装篇——深拷贝、浅拷贝

1、浅拷贝 如下&#xff0c;此时如果同一块内存释放两次&#xff0c;会报错 2、深拷贝

TinyXML学习记录及整理

整理自 http://www.cnblogs.com/phinecos/archive/2008/03/11/1100912.html http://www.cppblog.com/age100/archive/2010/05/12/115203.html http://panpan.blog.51cto.com/489034/104961 及百度文库。 TinyXML是一个开源的解析XML的解析库&#xff0c;能够用于C&#xff0c;能…

indy10 UDP实例

UDP就比较简单了&#xff0c;放个按钮&#xff0c;一个TIdUDPServerTIdUDPServer绑定 0.0.0.0:3820&#xff0c;然后Active设置为True//发送按钮procedure TForm1.Button1Click(Sender: TObject);varIdUDPClient1: TIdUDPClient; //动态创建TIdUDPClientbeginIdUDPClient1:TIdU…

解决模拟MOSS用户调用WebService打开个人站点进行操作

From:http://www.cnblogs.com/BruceLee521/ 开始以为要构建 WindowsIdentity windowsIdentity WindowsIdentity.GetCurrent(); GenericPrincipal genericPrincipal new GenericPrincipal(genericIdentity, roles); 然后把HttpContext.Current.User 置成上面构造的。但发现在打…

GNU C 、ANSI C(标准C)与标准c++的区别

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 概念 GNU计划在编写linux的时候自己制作了一个标准&#xff0c;称为GNU C标准。 ANSI&#xff08;美国国家标准协会&#xff09;对C做了一个标准“ANSI C”&#xff0c;后来被国际标准协会接收成为标准C。 …

ASIHTTPRequest 常用方法讲解

原文地址&#xff1a;http://www.cocoachina.com/iphonedev/sdk/2011/0324/2736.html ASIHTTPRequest 是一款极其强劲的 HTTP 访问开源项目。让简单的 API 完成复杂的功能&#xff0c;如&#xff1a;异步请求&#xff0c;队列请求&#xff0c;GZIP 压缩&#xff0c;缓存&#x…

作业记录

老师留得题目http://oldboy.blog.51cto.com/2561410/1337343首先我用了一个我最快想到办法用了一个超级笨的办法 #!/bin/bash #(基础) pwdpwd #(临时目录) dir"htmldir" #(源文件地址) html"http://vote.runsky.com/2013/12/jiaoyu/" #(临时文件1) file1&q…

C++远航之封装篇——对象指针、this指针

1、使用new会调用构造函数&#xff0c;使用malloc不会使用构造函数。 2、加不加括号都行&#xff1f;YES 3、对象成员指针&#xff08;指针指向对象&#xff0c;而这对象是数据成员&#xff09; 4、this指针 下面这个没有歧义&#xff1a; 而下面这个有歧义&#xff1a; 为此&a…