***************************************************

更多精彩,欢迎进入:http://shop115376623.taobao.com

***************************************************

已知String类定义如下:

class String

{

public:

String(const char *str = NULL); // 通用构造函数

String(const String &another); // 拷贝构造函数

~ String(); // 析构函数

String & operater =(const String &rhs); // 赋值函数

private:

char *m_data; // 用于保存字符串

};

尝试写出类的成员函数实现。

答案:

String::String(const char *str)

{

if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断

{

m_data = new char[1] ;

m_data[0] = '\0' ;

}

else

{

m_data = new char[strlen(str) + 1];

strcpy(m_data,str);

}

}

String::String(const String &another)

{

m_data = new char[strlen(another.m_data) + 1];

strcpy(m_data,other.m_data);

}

String& String::operator =(const String &rhs)

{

if ( this == &rhs)

return *this ;

delete []m_data; //删除原来的数据,新开一块内存

m_data = new char[strlen(rhs.m_data) + 1];

strcpy(m_data,rhs.m_data);

return *this ;

}

String::~String()

{

delete []m_data ;

}

String类 写出类的成员函数实现相关推荐

  1. [c++ 简单的笔记] 类的6个默认成员函数

    -客亦知夫水与月乎? -哀吾生之须臾 羡长江之无穷. 文章目录 类的6个默认成员函数 构造函数 构造函数初始化列表 注意 explicit关键字(了解) 拷贝构造函数 务必自己写深拷贝的情况的情况 赋 ...

  2. T5 根据派生类写出基类(Java) (10分)

    6-1 根据派生类写出基类(Java) (10分) 裁判测试程序样例中展示的是一段定义基类People.派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试 ...

  3. PTA 6-2 根据派生类写出基类(Java)

    6-2 根据派生类写出基类(Java) 裁判测试程序样例中展示的是一段定义基类People.派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试程序正常运行 ...

  4. 【 C++ 】类和对象(中)—— 类的6个默认成员函数

    目录 1.类的6个默认成员函数 2.构造函数 构造函数概念 构造函数特性 3.析构函数 析构函数概念 析构函数特性 4.拷贝构造函数 拷贝构造函数概念 拷贝构造函数特性 5.赋值运算符重载 运算符重载 ...

  5. 类与对象:类的6个默认成员函数: 构造函数、析构函数、拷贝构造函数、赋值操作符重载、默认拷贝构造与赋值运算符重载的问题、const成员函数、 取地址及const取地址操作符重载

    1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类.任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数. 构造函数 析构函数 拷贝构造函数 赋值操作符重载 const成员函数 ...

  6. 【C++】类和对象的默认成员函数讲解

    文章目录 简介 构造函数※※※ 系统生成的默认构造函数的特性 构造函数的初始化列表 析构函数※ 拷贝构造函数※※※ 默认的拷贝构造函数 赋值重载函数 赋值运算符的重载格式 赋值运算符只能重载成类的成员 ...

  7. boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序

    boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序 实现功能 C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回 ...

  8. C++类的六个特殊成员函数20220226

    ------------------------------------------------ 1.设置六个函数的参数,先让函数运行起来 1.1 test/Student.h #include &l ...

  9. 3-3:类与对象中篇——默认成员函数之构造函数和析构函数

    文章目录 一:类的默认6个成员函数 二:构造函数 (1)构造函数的概念 (2)构造函数注意事项 三:析构函数 (1)析构函数的概念 (2)析构函数注意事项 一:类的默认6个成员函数 如果一个类里面什么 ...

最新文章

  1. Shiny平台构建与R包开发
  2. ExtJS4.2学习(14)基于表格的扩展插件(2)
  3. C#实现异步消息队列
  4. CentOS 7.x安装配置
  5. 初中数学知识点总结_初中物理 | 最全知识点总结
  6. Linux网络故障排查命令(ifconfig、ping、telnet、netstat、lsof、nc、curl、tcpdump)
  7. Python:监控键盘输入、鼠标操作,并将捕获到的信息记录到文件中
  8. html表格输入框怎么左移动,当我向CSS中的文本框添加边框时,HTML表单输入会移动...
  9. 关于微软企业库中依赖注入容器Unity两种生成对象的实现
  10. sony lt26i android 5.1rom,索尼 LT26 Xperia L 5.1.1 ROM刷机包 扁平化 来电归属 农历 新相机 稳定流畅...
  11. CentOS 安装Docker 并部署配置MySql
  12. 五个Metro UI 风格的网页设计
  13. 在实战中学习项目管理 --专栏《项目管理实战20讲》学习总结
  14. C | 扫雷游戏完整版
  15. 游戏音效只是简单的改原素材吗?
  16. nltk.stem 词干提取(stemming)
  17. CF894A QAQ
  18. 总有些中文情歌,让我莫明的感动了
  19. mosaic数据增强
  20. 视频片段怎么做成gif图?快试试这2种方法

热门文章

  1. Oracle中修改遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”
  2. ADOQuery 查询 删除 修改 插入
  3. cocoapods的安装(这真是一个神奇的东西,每次安装的方法都不一样,而且很容易出现各种各样的错误)...
  4. Android ListView性能优化实例讲解
  5. 判断 iframe 是否加载完成的完美方法(转)
  6. 浪客剑心:位图法Bitmap算法分析
  7. c# 编程学习(二)
  8. 「分块系列」数列分块入门3 解题报告
  9. 2-05 使用固态存储SSD或PCIe卡
  10. RedHat6.2 x86手动配置LNMP环境