运算符重载实现字符串串接
来源:互联网 发布:dota2淘宝饰品便宜 编辑:程序博客网 时间:2024/04/28 03:57
/*定义一个字符串类 STR,实现字符串的拼接。通过重载运算符“+=”,实现类中数据成员(字符串)的拼接。如有必要,可定义其他辅助函数,如赋值运算符重载函数。具体要求如下:(1)私有数据成员: char *s; 数据成员,存放字符串(2)公有成员函数: STR(char *p=0):构造函数,以形参初始化数据成员; friend STR &operator+=( STR &str1,STR &str2):重载函数,实现类中字符串的拼接; void print():输出数据成员; ~STR():析构函数,释放动态内存。(3)对所定义的类进行测试。以“abcd”和“12345”为测试数据,实现它们的拼接,并把拼接后的字符串对象赋给新的对象。*/#include<iostream>using namespace std;class str{private: char *s;public: str(char *p ); //函数定义和函数声明不能同时声明默认参数 friend str &operator +=(str &str1, str &str2); void print(); ~str();};str::str(char *p = 0){ s = new char; s = p;}str &operator+=(str &str1, str &str2)//此种方法不足够好,虽然也能出来结果,但内存空间早已出界,不安全。{ char *ptr = str1.s; while (*ptr) { ptr++; } while (*str2.s) { *ptr = *str2.s; ptr++; str2.s++; } *ptr = '\0'; return str1;}void str::print(){ char *ptr = s; cout << ptr << endl;}str::~str(){ delete s;}int main(){ char a[] = "abcd", b[] = "1234"; str str1(a), str2(b); str1 += str2; str1.print(); //必要时可以申请str3用来盛放结果,只不过那时就需要定义“+”运算符。 system("pause"); return 0;}
阅读全文
0 0
- 运算符重载实现字符串串接
- 运算符重载实现字符串串接
- 简单实现运算符重载
- 通过运算符重载实现复数运算
- ”^“运算符重载实现幂指数运算
- 十九、运算符重载(三)String类的改进实现、[]运算符重载、+运算符重载、+=运算符重载、<<运算符重载、>>运算符重载
- 汇编字符串串操作指令
- 巨型整数运算符重载实现部分
- 运算符重载(实现CString类)
- 矩阵类的实现,运算符重载
- 实现复数类中的运算符重载
- 实现Time类中的运算符重载
- 用运算符重载实现复数相加
- C++实现的复数运算符重载
- 实现复数类的运算符重载
- 实现负数中的运算符的重载
- 实现复数类中的运算符重载
- 实现复数类中的运算符重载
- 从顺序表中返回最小值元素
- 解决php编译报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.
- python正则表达式中文匹配
- 回归写博客
- Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材
- 运算符重载实现字符串串接
- spring中使用quartz框架(持久化到数据库+springboot)
- 华为OJ——线性插值
- 『ORACLE』创建profile(11g)
- Pairs forming LCM (最小公倍数为n的数对)
- VMware 虚拟机 linux执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask)问题
- 设计模式之代理模式简介
- 1009. 说反话 (20)
- Java eclipse: errors exist in required project(s)