永发信息网

编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:

答案:1  悬赏:70  手机版
解决时间 2021-01-07 11:10
编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:
最佳答案
// String 的析构函数
String::~String(void)
{
delete [] m_data;
// 由于m_data 是内部数据类型,也可以写成 delete m_data;
}
// String 的普通构造函数
String::String(const char *str)
{
if(str==NULL)
{
m_data = new char[1]; // 若能加 NULL 判断则更好
*m_data = ‘\0’;
}
else
{
int length = strlen(str);
m_data = new char[length+1]; // 若能加 NULL 判断则更好
strcpy(m_data, str);
}
}
// 拷贝构造函数
String::String(const String &other)
{
int length = strlen(other.m_data);
m_data = new char[length+1]; // 若能加 NULL 判断则更好
strcpy(m_data, other.m_data);
}
// 赋值函数
String & String::operate =(const String &other)
{
// (1) 检查自赋值
if(this == &other)
return *this;
// (2) 释放原有的内存资源
delete [] m_data;
// (3)分配新的内存资源,并复制内容
int length = strlen(other.m_data);
m_data = new char[length+1]; // 若能加 NULL 判断则更好
strcpy(m_data, other.m_data);
// (4)返回本对象的引用
return *this;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
html 图片不显示
夏天锻炼容易出汗,最好喝什么水对身体好?
海宁锦田家园是拆迁安置房吗?
我愿作玉厚,你可别作玉亭!什么意思
什么情况下郑州小额宝拒批
爱华sxn990音箱多少瓦
楼顶太阳能避雷怎么做
四边形 ABCD 中, , M , P , N , Q 是 AB , BC
日照办理货车市区通行证在哪里办理
怎样装修130平米的小
苹果6第6天反厂拿回来之后还有问题 可以换新
0.25除0.02表示什么
天翼乐影可以看超少年密码吗?请回答具体一点
蒜苗炒肉泥的做法步骤图,蒜苗炒肉泥怎么做
5x-8=48的解和检
推荐资讯
南京金鹰国际待遇如何?
物体的重力的方向是________,重力在物体上的
两组暖气片中间用多粗的管连接(两组并一组)
战后美国在欧洲实行“冷战”政策的同时,在亚
1972年的韩币100现在值多少
找出一个划线部分发音与其他三个不同的单词A.
将一些小纸屑放在桌上,用塑料梳子在自己的头
为什么网易新闻上的跟帖显示全是0条
帆布鞋(6孔1根鞋带)的花样系法
女生对我说。认识你很偶然吧。她这样说代表什
荣耀play和小米8哪个充电
带有金字与祥字的成语
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?