社区
C++ 语言
帖子详情
有关拷贝构造的用法?
cnepine
2003-10-22 03:12:03
在c++中,何时才能用到拷贝构造函数,应该如何运用拷贝构造函数?
...全文
55
5
打赏
收藏
有关拷贝构造的用法?
在c++中,何时才能用到拷贝构造函数,应该如何运用拷贝构造函数?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Flamesong
2003-10-22
打赏
举报
回复
daixinwei(无聊的我不听)说的是好的.
daixinwei
2003-10-22
打赏
举报
回复
这是一个必须自己定义拷贝构造的经典例子,由于是我自己打进来的,所以可能会出现语句错误,你自己注意一下就好了.不懂再问我!
#include<iostream.h>
#include<string.h>
class string{
private:
char *st;
public:
string(char *s)
{
str=new char[strlen(s)+1];
stcpy(str,s);
}
void print(){cout<<str<<endl;}
~string(){cout<<"delete..."<<endl;delete str;}
};
void main()
{
string s1="hello";
string s2=s1;
s1.print();
s2.pring();
}
在这个程序里就出现问题了,问题语句是:string s2=s1;
因为这个语句等价于
s2.str=s1.str;
所以在执行析构时由于s2.str和s1.str指向的都是HELLO所以HELLO要被删除两次,所以会产生错误
解决的方法是自己定义一个拷贝初始化:
string::string(string& a)
{
str=new char[strlen(a.str)+1];
strcpy(str,a.str);
}
daixinwei
2003-10-22
打赏
举报
回复
没有关系的,一般来说,很少有人会去没分的贴子!大家都要CSDN的分嘛!一样自己的问题没有人答!上面的答得不知道你明白没有,没明白,可以点一下我的名字然后留言给我,我尽力帮你,我也是个阿菜,大家互相帮忙嘛!呵呵!这个贴子你认为没有用的时候,一定记得选一下管理,然后点一下给分来结贴不然还要扣分的,呵呵!有问题可以问我!
cnepine
2003-10-22
打赏
举报
回复
谢谢你,我是这儿的Freshman,从别人那儿得知的这个地方。
现在还不是太清楚这儿的游戏规则。
不好意思的。
晴多多关照。
daixinwei
2003-10-22
打赏
举报
回复
没分没关系我帮你答
在用一个对象初始化该类的另一个对象时这个东东就有用了
有时初始的是指针,就会出现两个对象的指针指向同一个地址的情况,这时如果你将两个对象都DELETE了,就会出错,这时就需要这个东东来帮忙解决问题了,还不懂的话,留言给我,我给你一个例子.
C
拷贝构造
函数.rar
C
拷贝构造
函数,编写程序熟悉拷贝函数的三种
用法
。理解临时对象的概念,并知道它的作用、何时被创建、何时被析构。
详解C++中构造函数,
拷贝构造
函数和赋值函数的区别和实现
主要介绍了C++中构造函数,
拷贝构造
函数和赋值函数的区别和实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
复制构造函数的
用法
实例
总有人会不很了解复制构造函数的
用法
,通过实例就可以清除了解其
用法
。
深入C++对象模型的读书笔记
深入C++对象模型的读书笔记 主要是将C++对象模型的内容做了提炼,关注更常用的一些知识。 内容基本依照原文,未作改动。实验中,也感觉此书与当下C++编译器脱节严重,有些东西不是太适用了,但仍不失为一份好的参考资料,但不可当作标准。
C++ 的构造/析构/赋值/拷贝函数比较
构造函数、析构函数与赋值函数是每个类最基本的函数。每个类只有一个析构函数,但可以有多个构造函数(包含一个
拷贝构造
函数,其它的称为普通构造函数)和多个赋值函数(除了同类的赋值以外,还有其他的赋值方法)。
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章