第四章:运算符的重载的一系列问题(课堂作业)
来源:互联网 发布:编程中打空格影响吗 编辑:程序博客网 时间:2024/05/29 04:23
#include<istream>using namespace std;#include<string.h>class String{public:String();virtual ~String();String(int n);String(const String &s2);String(const char *str);String & operator = (const String &s1);friend bool operator >(String &string1, String &string2);friend bool operator <(String &string1, String &string2);friend bool operator == (String &string1, String &string2);friend bool operator <= (String &string1, String &string2);friend bool operator >= (String &string1, String &string2);friend ostream& operator << (ostream& , String &);private:char *s;};String::String()//初始化,默认长度为100{s = new char[100];s[0] = '\0';}String::String(int n)//构造一个大小为n的数组{s = new char [n];s[0] = '\0';}String::~String()//析构{if(s){delete s;}s = NULL;}String::String(const String &s2)//拷贝构造函数{ this->s = new char [strlen[s2.s]+1] ; //ERROR :C:\Users\Administrator\Desktop\I can do it\fsada.cpp(69) : error C2107: illegal index, indirection not allowed //ERROR: C:\Users\Administrator\Desktop\I can do it\fsad//error //C2440: 'initializing' : //cannot convert from 'char *' to 'int's[0] = '\0';strcpy(s, s2.s);}String::String(const char *str){s = new char[strlen[str]+1];//同上 = =。s[0] = '\0';}String& String :: operator = (const String &s1)//赋值构造函数{if(this == &s1) {return *this;}else{delete []s1; //ERROR :No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called //ERRORE:fatal error C1903: unable to recover from previous error(s); stopping compilation s1 = new char [strlen[s1.s]+1];return *this;}}bool operator > (String &string1, String &string2){if(strcmp(string1.s , string2.s) > 0) return true;elsereturn false;}bool operator < (String &string1, String &string2){if(strcmp(string1.s , string2.s) < 0) return true;elsereturn false;}bool operator == (String &string1, String &string2){if(strcmp(string1.s , string2.s) == 0) return true;elsereturn false;}bool operator <= (String &string1, String &string2){if(strcmp(string1.s , string2.s) > 0) return false;elsereturn true;}bool operator >= (String &string1, String &string2){if(strcmp(string1.s , string2.s) < 0) return false;elsereturn true;}ostream& operator << (ostream& output , String & s3){output << s3.s << endl;return output;}没办法找出错误的原因。无法运行 = =。
0 0
- 第四章:运算符的重载的一系列问题(课堂作业)
- 第四章 重载课堂作业
- 第四章课堂作业
- 构造函数重载的课堂作业
- 第四章运算符重载
- 对C++运算符重载的作业分析
- Linux内核云课堂作业第四章(上)
- 第四次课堂作业
- 第四课堂作业
- 第四次课堂作业
- 第四次课堂作业
- 第四次课堂作业
- 第四次课堂作业
- 第四次课堂作业
- 重载课堂作业
- 运算符的重载:[],(),->;
- 运算符的重载
- 运算符的重载
- 移植较新(Linux3.19)内核至mini2440开发板(二)——LCD的移植
- JDBC连接Sql Server 2008 数据库一
- Centos设置IP、DNS
- 算法导论笔记:13-04红黑树以及其他平衡树
- 【Android】ContentValues的用法
- 第四章:运算符的重载的一系列问题(课堂作业)
- 编程之美3.2 电话号码对应英语单词
- 关于XML的总结(一)
- jQuery实现搜索关键字自动匹配提示方法
- MyEclipse2014 优化设置
- 安装Windows Server 2003 详解(图)
- 从html表单提交信息到php界面出现不解析情况
- 非Ajax下用JavaScript获取文件大小(兼容IE及FireFox)
- [BZOJ3529][Sdoi2014]数表 && 莫比乌斯反演+树状数组