Я изучаю 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] ’в двоичный‘ оператор + ’
Я посмотрел в Google и в книге, из которой я учусь, безуспешно.
кто-нибудь с предложениями? (Я почти уверен, что я делаю что-то глупое, вы должны простить меня, я изначально программист PHP) Может ли кто-нибудь указать мне на то, что мне не хватает?