Я изучаю cpp и в своем последнем задании я переписываю класс std::string. Итак, вот схема моего кода: строковый класс:
class String {
public:
String(const char* sInput) {
string = const_cast<char*> (sInput);
}
const String operator+(const char* str) {
//snip
print();
}
void print() {
cout<<string;
}
int search(char* str) {
}
private:
char* string;
int len;
};
О, и я должен сказать, что пытался объявить метод как String* operator+(const char* str) и как const String& operator+(const char* str) без изменений. И вот как я его запускаю:
int main(int argc, char* argv[]) {
String* testing = new String("Hello, "); //works
testing->print();//works
/*String* a = */testing+"World!";//Error here.
return 0;
}
Полная ошибка выглядит так:
foobar.cc:13: ошибка: недопустимые операнды типов «String*» и «const char [7]» для двоичного «operator+»
Я искал в Google и в книге, из которой я учусь, но безуспешно. любой с предложениями? (Я почти уверен, что делаю что-то глупое, вам придется меня простить, я изначально программист PHP) Может ли кто-нибудь указать мне, что мне не хватает?