编写String类的构造函数,拷贝构造函数,析构函数,重载赋值运算符

#pragma once
class StringTest
{
public:
StringTest(void);
StringTest(const char *strTest);
StringTest(const StringTest &strTest);
~StringTest(void);
StringTest& operator=(const StringTest &strTest);
private:
char *m_data;
};

#include "StdAfx.h"
#include "StringTest.h"
StringTest::StringTest(void)
{
}
StringTest::~StringTest(void)
{
delete []m_data;
m_data = 0;
}
StringTest::StringTest(const char *strTest)
{
if (strTest == 0)
{
m_data = new char[1];
m_data[0] = '\0';
}else
{
int len = strlen(strTest);
m_data = new char[len + 1];
strcpy(m_data ,strTest);
}
}
StringTest::StringTest(const StringTest &strTest)
{
int len = strlen(strTest.m_data);
m_data = new char[len + 1];
strcpy(m_data ,strTest.m_data);
}
StringTest& StringTest::operator=(const StringTest &strTest)
{
if(this == &strTest)
return *this;
delete []m_data;
int len = strlen(strTest.m_data);
m_data = new char[len + 1];
strcpy(m_data ,strTest.m_data);
return *(this);
}
本题不难,关键要考虑全面,考验的是你代码书写的基本功,这个还要加强锻炼啊。

posted on 2013-09-17 00:02 cslover 阅读(900) 评论(0)  编辑 收藏 引用 所属分类: C++基础


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜