博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++类中的特殊成员函数-------复制构造函数
阅读量:7059 次
发布时间:2019-06-28

本文共 1224 字,大约阅读时间需要 4 分钟。

  在C++中存在一个特殊函数,他就是复制构造函数,假如我们有类A,如果有A a;A b=a;   在这种情况下利用A类变量a来给同是A类变量的b来赋值,这个时候类会使用复制构造函数,如果我们不显式声明复制构造函数,那么类将会调用默认的复制构造函数。下面的代码说明了这一情况,如果我们将类StringBad中的复制构造函数StringBad(StringBad &)去掉,那么count最后输出的结果会为复制(count为静态变量用来记录类StringBad的对象个数)。

main.cpp

#include 
#include"StringBad.h"using namespace std;int main(){ StringBad * src=new StringBad("src"); StringBad srb("srb"); StringBad srd=srb; delete src; return 0;}

StringBad.h

#include
#include
using namespace std;class StringBad{public: static int count; char * name; StringBad(char * name); StringBad(StringBad &); ~StringBad();};

StringBad.cpp

#include"string.h"#include
#include
#include"StringBad.h"using namespace std;int StringBad::count=0;StringBad::StringBad(char * name){ this->name=new char(strlen(name)+1); strcpy(this->name,name); count++; cout<<"创建新对象"<<(this->name)<<"后,还有"<
<<"个对象"<
name)<<"之后,还有"<
<<"个对象"<
name=new char(strlen(s.name)+1); strcpy(this->name,s.name); cout<<"调用复制函数后,还有"<
<<"个对象"<

 

转载于:https://www.cnblogs.com/JsonZhangAA/p/7196893.html

你可能感兴趣的文章
[区块链]Merkle Tree
查看>>
Token 认证
查看>>
搜索服务solr 一二事(1) - solr-5.5 使用自带Jetty或者tomcat 搭建单机版搜索服务器...
查看>>
Html5新增加的属性
查看>>
php生成图片缩略图,支持png透明
查看>>
Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
查看>>
论一个蒟蒻的脑子里可以有多少坑(貌似咕了……目前更新保持在noip阶段)
查看>>
Python第三方库安装和卸载zz
查看>>
C++——虚函数表解析
查看>>
重磅!共享单车漏洞独家发布。
查看>>
html中特殊符号
查看>>
为什么 SharedPreferences 可以直接 调用,前面却没有对象
查看>>
php fsockopen 中多线程的解决办法
查看>>
yii框架后台过滤器的使用 安全防护
查看>>
[nginx]lua操作redis
查看>>
第四章 串和数组 (主要kmp算法)
查看>>
laravel 把对象换为数组以及 foreach循环遍历
查看>>
mongodb的docker化安装
查看>>
R笔记
查看>>
【数据结构-ZZU】01. 绪论
查看>>