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)
上一篇 2021年9月29日 下午10:00
下一篇 2021年9月29日 下午10:00


相关推荐

  • 快速理解线程锁

    快速理解线程锁线程锁线程锁真的好麻烦啊!!!找了几篇博客发现写的都不一样相关联内容太多不容易理解所以现在需要理清什么是线程锁应用场景怎么用优缺点1.什么是线程锁机制多线程可以同时运行多个任务但是当多个线程同时访问共享数据时,可能导致数据不同步,甚至错误!so,不使用线程锁,可能导致错误啰嗦两句:比如你在银行取钱的同时你女朋友用支付宝取钱…

    2022年6月21日
    26
  • 剪映营销成片教程

    剪映营销成片教程

    2026年3月15日
    3
  • 月之暗面Kimi回应马斯克点赞:你的火箭造得也不错!

    月之暗面Kimi回应马斯克点赞:你的火箭造得也不错!

    2026年3月18日
    3
  • c++入门教程–-21C++类访问修饰符

    c++入门教程–-21C++类访问修饰符

    2021年3月12日
    125
  • 递归迭代

    递归迭代深究递归和迭代的区别 联系 优缺点及实例对比 1 概念区分递归的基本概念 程序调用自身的编程技巧称为递归 是函数自己调用自己 一个函数在其定义中直接或间接调用自身的一种方法 它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决 可以极大的减少代码量 递归的能力在于用有限的语句来定义对象的无限集合 使用递归要注意的有两点 1 递归就是在过程或函数里面调

    2026年3月18日
    1
  • ntko php,NTKO 附件管理控件_

    ntko php,NTKO 附件管理控件_支持多种后台 web 服务器和开发语言支持 DOMINO IIS WebLogic Apache 等多种后台 web 服务器和 ASP JSP C VB NET PHP 等多种后台开发语言 在任何后台 web 服务器都无需后台安装特别的组件或者软件与 DOMINO 服务器无缝集成无需后台组件 和 DOMINO 服务器可无缝集成 比 INOTES 使用更加方便 开发更加快捷支持智能提交控件使用我们独创的智能提交技术 支持将

    2026年3月18日
    1

发表回复

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

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