c++拷贝构造函数

c++拷贝构造函数

拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:

  • 通过使用另一个同类型的对象来初始化新创建的对象。

  • 复制对象把它作为参数传递给函数。

  • 复制对象,并从函数返回这个对象。

如果在类中没有定义拷贝构造函数,编译器会自行定义一个。如果类带有指针变量,并有动态内存分配,则它必须有一个拷贝构造函数。拷贝构造函数的最常见形式如下:

#include<iostream>

using namespace std;

class Line{
	public:
		int getlength();
		Line(int len);//简单的构造函数 
		Line(const Line&obj);//拷贝构造函数
		~Line();//析构函数 
	private:
		int *ptr;
};
//成员函数的定义,包括构造函数
Line::Line(int len)
{
	cout << "调用构造函数  "<<endl; 
	//为指针分配内存
	ptr = new int;
	*ptr  = len;  
} 
Line::Line(const Line & obj)
{
	cout << "调用构拷贝造函数并为指针 ptr 分配内存" <<endl;
	ptr = new int;
	*ptr = *obj.ptr;//拷贝值 
}
Line::~Line(){
	cout <<"释放内存 " << endl;
	delete ptr;
}
int Line::getlength(){
	return *ptr;
}
void display(Line obj)
{
	cout << "Line 大小 :" << obj.getlength() << endl;	 
}
//程序的主函数 
int main()
{
	Line line(10);
	display(line);
	system("pause"); 
	return 0;
} 

运行结果为:

c++拷贝构造函数

 嗯,c中指针部分得复习,自己还没吃透,再吐槽一句,书上第一页说的没错,c++是目前编程语言中最难的语言。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114814.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 苹果充电器怎么辨别真假_9款热门充电器盘点:苹果、Anker、紫米、小米、锤子,谁更值得买…[通俗易懂]

    本文作者:基围虾GeekUp由于把玩各种设备,并且狂热追求快充,所以手里更新了一堆充电器,今天就来跟大家聊聊我手里的这些充电器们。从功率来排的话,目前我手上有以下充电器。1,苹果五福一安买手机手表送的,家里屯了一堆了,一个都没用上。2,锤子18W买R1之前收了一套,有了R1又多了一套,小夜灯牛逼,配合C2L线无敌。3,小米QC3.0随小米手机附送的头,QC3.0,没啥。4,Anker3…

    2022年4月9日
    66
  • awvs扫描器原理_条形码扫描器现在无法使用

    awvs扫描器原理_条形码扫描器现在无法使用AWVSAWVS(WebVulnerabilityScanner)是一个自动化的Web应用程序安全测试工具,它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。WVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。AWVS功能介绍WebScanner:核心功能,web安全漏洞扫描(深度,宽度,限制20个)Site

    2022年9月22日
    3
  • gentoo install_centos7 no controller found

    gentoo install_centos7 no controller found这期笔记将是gentoo安装的最后一期了,虽然已经配置内核了,但是也要完成剩下的安装步骤,这离安装完成已经不远了,继续加油!!!如果中断了安装,请看第二期的笔记进行恢复安装,但请重新编译一次内核,否

    2022年8月1日
    6
  • 树莓派4B 安装和配置使用

    树莓派4B 安装和配置使用树莓派4B安装和配置使用

    2022年6月7日
    38
  • artcam浮雕实例教程_artcam2018入门教程

    artcam浮雕实例教程_artcam2018入门教程记录过去,奋斗现在,展望未来(给未来即将结束的工作的’存档’)ArtCAM入门简单教程二、浮雕前言:这不是个很专业的浮雕设计教程,不过是很简单即可实现的入门教程,而更深入的浮雕学习建议查找更全面的网上教程或CAM浮雕书籍。   常用的矢量雕刻,详见:http://blog.sina.com.cn/s/blog_647ef76d0101jgwn.html开始之

    2025年9月15日
    4
  • jar 解压war_war包解压命令

    jar 解压war_war包解压命令文章来源:java实现可压缩或解压缩WAR文件packageutils;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;impo…

    2022年10月5日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号