little_greg Опубликовано 1 декабря, 2009 Жалоба Поделиться Опубликовано 1 декабря, 2009 при компиляции появляется ошибка в строке st.str = st1.str + st2.str (error: invalid operands of types ‘char* const’ and ‘char* const’ to binary ‘operator+’) почему так происходит? class String { private: char* str; int len; static const int CINLIM = 80; public: String(const char* s); String(); String(const String&); ~String(); int length() const {return len;} String& operator=(const String&); String& operator=(const char*); char& operator[](int i); const char& operator[](int i) const; friend String operator+(const String& st1, const String& st2); friend bool operator<(const String& st1, const String& st2); friend bool operator>(const String& st1, const String& st2); friend bool operator==(const String& st1, const String& st2); friend std::ostream& operator<<(std::ostream& os, const String& st); friend std::istream& operator>>(std::istream& is, String& st); static int howmany(); String stringup(); void stringlow(); int has(char); }; String operator+(const String& st1, const String& st2) { String st; st.str = new char[strlen(st1.str) + strlen(st2.str) + 1]; st.str = st1.str + st2.str; //error: invalid operands of types ‘char* const’ and ‘char* const’ to binary ‘operator+ return st; } ... int main() { String s1("string1"); String s2 = "string2"; String s3; s3 = s2 + s1; Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.