重载 比较
来源:互联网 发布:数据恢复时间 编辑:程序博客网 时间:2024/05/22 00:49
#include <iostream>using namespace std;class String{public: String(); String(const char*const ch); int getlen()const { return len;} friend ostream&operator<<(ostream &o, const String &s) { o<<s.str; return o; } friend istream&operator>>(istream &i, String &s) { i>>s.str; return i; } friend bool operator<(const String&str1, const String&str2) { if(strcmp(str1.str, str2.str) < 0){ return 1; }else return 0; } friend bool operator>(const String&str1, const String&str2) { if(strcmp(str1.str, str2.str) > 0){ return 1; }else return 0; } friend bool operator==(const String&str1, const String&str2) { if(strcmp(str1.str, str2.str) == 0){ return 1; }else return 0; } char &operator[](unsigned short int length); char operator[](unsigned short int length)const; String (const String&r); String &operator=(const String &s); private: unsigned short int len; char *str;};String::String(){ len = 0; str = new char[1]; str[0] = '\0';};String::String(const char*const ch){ len = strlen(ch); str = new char[len+1]; for(int i=0; i<len; i++){ str[i] = ch[i]; } str[len] = '\0';}; char & String::operator[](unsigned short int length){ if(length > len){ return str[len-1]; }else{ return str[length]; }}; char String::operator[](unsigned short int length)const{ cout<<"下标运算符const执行"<<endl; if(length > len){ return str[len-1]; }else{ return str[length]; }}; String::String (const String&rs){ len = rs.getlen(); str = new char[len+1]; for(int i=0; i<len; i++){ str[i] = rs[i]; } str[len]='\0'; cout<<"复制构造函数完成:"<<str<<endl; }; String& String::operator=(const String &s){ cout<<"operator=执行"<<endl; if(this == &s) { return *this; }else{ delete []str; len = s.getlen(); str = new char[len+1]; for(int i=0; i<len; i++){ str[i] = s[i]; } str[len] = '\0'; } return *this; } int main(){ String s1("aaa");cout<<"s1=aaa"<<endl; String s2("bbb");cout<<"s2=bbb"<<endl; int ch1 = s1>s2;if (ch1=1)cout<<"s1<s2"<<endl;else cout<<"s2>=s1"<<endl;String s3("aaa");cout<<"s3=aaa"<<endl;int ch3 = s1==s3;if (ch3=1)cout<<"s1s3相等"<<endl;else cout<<"并不相等"<<endl;int ch4 = s2==s3;if (ch4=1)cout<<"s2s3并不相等"<<endl;else cout<<"相等"<<endl; return 0;}
0 0
- 重载 比较
- C++比较符重载
- 比较运算符的重载
- 优先队列比较符重载
- STL set重载比较函数
- 关于重载和比较函数
- 重载比较函数 的用法
- 关于重载和重写(覆盖)的比较
- c++比较运算符重载函数_compare
- poj 3349(重载比较操作符+排序)
- 重载运算符比较字符串长度
- c#比较和运算符重载
- C++重写/重载/重定义的比较
- C#比较运算符的重载:
- 【十三】分数的重载,加减乘除以及比较
- 方法重写与方法重载的比较
- C# 关于方法的隐藏和重载的比较
- 覆写(Override)和重载(Overload)的比较
- 第一题
- Linux学习网站
- 获取路由器的Mac地址和当前的iP地址
- leetcode Excel Sheet Column Title
- oracle 表或试图不存在
- 重载 比较
- 第二题
- Java静态绑定与动态绑定
- C文件输入
- 单链表反转
- 网页编程URL无法传递参数处理
- Handler消息处理机制
- 欢迎使用CSDN-markdown编辑器
- 世界著名书籍前100名