【笔试】:编程实现C++string 类成员函数
http://blog.csdn.net/wangshihui512/article/details/9792309
已知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::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 ;
}
【笔试】:编程实现C++string 类成员函数相关推荐
- c ++类成员函数_C ++编程中的数据成员和成员函数
c ++类成员函数 C ++中的数据成员和成员函数 (Data members and Member functions in C++) "Data Member" and &qu ...
- 类和对象编程(一):类成员函数
C++ 类成员函数 类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样.类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员. 让我们看看之前定义的 ...
- C++普通函数指针和类成员函数指针
举例1:普通函数指针: int(*fun)(double, int);fun = [](double a, int b) {cout << a << endl;cout < ...
- 【C++】抽象和类(2)--如何实现类成员函数?
目录 1 实现类成员函数 成员函数的定义有两个特殊的特征 类方法的完整 名称包括类名 类方法可以直接 访问私有成员!!! 2 代码示例 stock00.h stock00.cpp 3. 代码解析 3. ...
- 【C/C++学院】(8)全局函数和类成员函数转化/友元/操作符重载
1.全局函数和类成员函数转化 全局函数和成员函数的相互转化:只需要修改一个指向本类的this指针: #include <iostream> using namespace std;clas ...
- C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)
1. 类的定义 类定义是以关键字 class 开头,后跟类的名称.并在它后面依次包含类名,一组放在 {} 内的成员属性和成员函数,以及结尾的分号. 类声明将类本身及其属性告诉编译器.类声明本身并不能改 ...
- 函数指针以及在类成员函数中应用函数指针
什么是函数指针 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址.而且函数名表示的就是这个地址.既然是地址我们就可以定义一个指针变 ...
- 类成员函数指针和普通函数指针
前言: 先声明一下,普通函数指针和类成员函数指针有很大的区别!所以在绑定函数的时候也会发生很多的不同的情况,本文就函数指针可能出现的各种情况一一进行分析. 测试目录: 1.普通函数指针指向普通函数 2 ...
- (C++)类的定义(实现类成员函数)——详细讲解,举例子
前面讲解了类的声明,现在我们讲解一下类的定义. 类的定义说简单点就是实现类成员函数,而成员函数定义与常规的函数定义非常相似,也需要有函数头和函数体,也可以有返回类型和参数. 有两个特殊的特征: 1.定 ...
最新文章
- Linux--Tail命令
- 【推荐实践】Bandit算法在携程推荐系统中的应用与实践
- NVIDIA 修复 GPU 驱动中的多个代码执行缺陷
- [python] 1.解释器
- C++编程 中文转换成Unicode
- Matlab调用系统命令行利用Internet Download Manager(IDM)实现批量下载
- 计算机专业大二还学微积分吗,大学最容易挂科的专业,计算机专业绝对排得上前三,其他专业呢?...
- 魔兽地图服务器修改,魔兽地图编辑器的问题,怎么修改RPG
- ISO14229-1道路车辆-统一诊断服务(UDS)-1
- Matthew Dean Schwartz《Quantum Field Theory and The Standard Model》(马修·迪恩·施瓦茨《量子场论与标准模型》)中文目录
- 一、MySQL整体架构
- 酷开系统上线共抗疫情版块
- 工程点点app爬虫和sign算法破解
- 腾讯统一播放器 API 文档2.0
- Google Guava 工具类库
- 【mysql】limit实现分页
- [Go WebSocket] 为什么我选用Go重构Python版本的WebSocket服务?
- 《微机原理第五版》期末知识总结(第八章---第十章)
- gameboy bios_使用真实的NES,Gameboy和Sega颜色创建8位样式图形
- HTML期末大作业~ 明星林依晨(7页)带留言 学生网页设计作业源码(HTML+CSS+JS)
热门文章
- CF 961E Tufurama
- 有关域索引错误产生的原因及解决办法
- idea 创建多模块依赖Maven项目
- Linux内核分析 02
- ASP.NET Web API 处理架构
- java逆向_Java逆向基础之异常
- onpagefinished等了很久才执行_今天自律了吗?停课不停锻炼 才是战疫正确姿势
- app vue 真机运行_使用 HBuilder 将 Vue 项目打包成手机 App
- 糖豆人维修服务器多长时间,服务器不稳定的《糖豆人》凭啥还这么火?只因做到了这三点...
- linux 实验 ps,Linux实验室:监控命令iostat与ps_服务器x86服务器-中关村在线