String类 写出类的成员函数实现
***************************************************
更多精彩,欢迎进入: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类 写出类的成员函数实现相关推荐
- [c++ 简单的笔记] 类的6个默认成员函数
-客亦知夫水与月乎? -哀吾生之须臾 羡长江之无穷. 文章目录 类的6个默认成员函数 构造函数 构造函数初始化列表 注意 explicit关键字(了解) 拷贝构造函数 务必自己写深拷贝的情况的情况 赋 ...
- T5 根据派生类写出基类(Java) (10分)
6-1 根据派生类写出基类(Java) (10分) 裁判测试程序样例中展示的是一段定义基类People.派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试 ...
- PTA 6-2 根据派生类写出基类(Java)
6-2 根据派生类写出基类(Java) 裁判测试程序样例中展示的是一段定义基类People.派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试程序正常运行 ...
- 【 C++ 】类和对象(中)—— 类的6个默认成员函数
目录 1.类的6个默认成员函数 2.构造函数 构造函数概念 构造函数特性 3.析构函数 析构函数概念 析构函数特性 4.拷贝构造函数 拷贝构造函数概念 拷贝构造函数特性 5.赋值运算符重载 运算符重载 ...
- 类与对象:类的6个默认成员函数: 构造函数、析构函数、拷贝构造函数、赋值操作符重载、默认拷贝构造与赋值运算符重载的问题、const成员函数、 取地址及const取地址操作符重载
1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类.任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数. 构造函数 析构函数 拷贝构造函数 赋值操作符重载 const成员函数 ...
- 【C++】类和对象的默认成员函数讲解
文章目录 简介 构造函数※※※ 系统生成的默认构造函数的特性 构造函数的初始化列表 析构函数※ 拷贝构造函数※※※ 默认的拷贝构造函数 赋值重载函数 赋值运算符的重载格式 赋值运算符只能重载成类的成员 ...
- boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序
boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序 实现功能 C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回 ...
- C++类的六个特殊成员函数20220226
------------------------------------------------ 1.设置六个函数的参数,先让函数运行起来 1.1 test/Student.h #include &l ...
- 3-3:类与对象中篇——默认成员函数之构造函数和析构函数
文章目录 一:类的默认6个成员函数 二:构造函数 (1)构造函数的概念 (2)构造函数注意事项 三:析构函数 (1)析构函数的概念 (2)析构函数注意事项 一:类的默认6个成员函数 如果一个类里面什么 ...
最新文章
- Shiny平台构建与R包开发
- ExtJS4.2学习(14)基于表格的扩展插件(2)
- C#实现异步消息队列
- CentOS 7.x安装配置
- 初中数学知识点总结_初中物理 | 最全知识点总结
- Linux网络故障排查命令(ifconfig、ping、telnet、netstat、lsof、nc、curl、tcpdump)
- Python:监控键盘输入、鼠标操作,并将捕获到的信息记录到文件中
- html表格输入框怎么左移动,当我向CSS中的文本框添加边框时,HTML表单输入会移动...
- 关于微软企业库中依赖注入容器Unity两种生成对象的实现
- sony lt26i android 5.1rom,索尼 LT26 Xperia L 5.1.1 ROM刷机包 扁平化 来电归属 农历 新相机 稳定流畅...
- CentOS 安装Docker 并部署配置MySql
- 五个Metro UI 风格的网页设计
- 在实战中学习项目管理 --专栏《项目管理实战20讲》学习总结
- C | 扫雷游戏完整版
- 游戏音效只是简单的改原素材吗?
- nltk.stem 词干提取(stemming)
- CF894A QAQ
- 总有些中文情歌,让我莫明的感动了
- mosaic数据增强
- 视频片段怎么做成gif图?快试试这2种方法
热门文章
- Oracle中修改遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”
- ADOQuery 查询 删除 修改 插入
- cocoapods的安装(这真是一个神奇的东西,每次安装的方法都不一样,而且很容易出现各种各样的错误)...
- Android ListView性能优化实例讲解
- 判断 iframe 是否加载完成的完美方法(转)
- 浪客剑心:位图法Bitmap算法分析
- c# 编程学习(二)
- 「分块系列」数列分块入门3 解题报告
- 2-05 使用固态存储SSD或PCIe卡
- RedHat6.2 x86手动配置LNMP环境