c++类的操作符重载
来源:互联网 发布:淘宝用品 编辑:程序博客网 时间:2024/05/16 14:40
以下是自己学习c++类的操作符重载自己写的string类
#include <iostream>#include <string.h>using namespace std;//字符串类编写class mystring{public: mystring(int size,const char* mstring) { m_len=size; m_space=new char[m_len]; strcpy(m_space,mstring); } mystring(const mystring &obj) { this->m_len=obj.m_len; this->m_space=new char[this->m_len]; strcpy(this->m_space,obj.m_space); } ~mystring() { delete [] m_space; } void display_string() { cout<<m_space<<endl; } //重载操作符public: char& operator[](int i) { if(i<0 || i>=m_len) cout<<"out of bounds"<<endl; return m_space[i]; } mystring& operator=(char const *buf) { if(m_space != NULL) { delete [] m_space; m_space=NULL; } this->m_len=strlen(buf); m_space=new char[m_len]; strcpy(m_space,buf); } mystring& operator=(mystring const obj) { if(m_space != NULL) { delete [] m_space; m_space=NULL; } this->m_len=obj.m_len; m_space=new char[m_len]; strcpy(m_space,obj.m_space); } mystring& operator+(char const *buf) { this->m_len=this->m_len+strlen(buf); char *tmp=new char[4096]; strcpy(tmp,m_space); strcat(tmp,buf); delete [] this->m_space; m_space=new char[m_len]; strcpy(m_space,tmp); delete [] tmp; } mystring& operator+(mystring const obj) { this->m_len=this->m_len+obj.m_len; char *tmp=new char [4096]; strcpy(tmp,this->m_space); strcat(tmp,obj.m_space); delete [] this->m_space; m_space=new char[m_len]; strcpy(m_space,tmp); delete [] tmp; } friend ostream& operator<<(ostream& out,mystring& obj);private: int m_len; char *m_space;}; ostream& operator<<(ostream& out,mystring& obj) { out<<obj.m_space; return out; }int main(){ mystring var01(10,"13213"); var01.display_string(); mystring var02=var01; var02.display_string(); cout<<var02[2]<<endl; var02[2]='5'; var02.display_string(); var02="zww is yunwei"; var02.display_string(); mystring var03=var01; var03=var02; var03.display_string(); var03+"lllllllllllll"; var03.display_string(); var03+var03; var03.display_string(); cout<<"HI:"<<var03<<endl; return 0;}
1 0
- c++string类的操作符重载
- C++【操作符重载】
- c++::操作符重载
- C++:操作符重载
- 【C++】 重载操作符类编程
- [c++]实例-类array,重载操作符
- 操作符重载(C++)
- C++-重载操作符<< >> = + - * /
- c++_操作符重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- More Effective C++:不要重载的操作符
- C++_指针悬挂和赋值操作符的重载
- C++_指针悬挂和赋值操作符的重载
- 字符识别opencv c++版
- 在onMeasure中获取已测量的子控件的宽高
- Notification (API14) 创建过程
- 263. Ugly Number
- Archive上传包出现错误ERROR ITMS-90005?
- c++类的操作符重载
- 数据库的优化-敏感信息的查询
- 图片64编码和解码
- python开发_++i,i += 1的区分
- Oracle恢复误操作drop删除的表
- 前端面试题汇总(三)
- PDO基本概念
- Android中shape属性详解
- iOS动画篇:核心动画