Я работаю над классом-оберткой для char[]
в с ++. Что-то вроде String
, Теперь я хочу получить значение из имени объекта. Например:
void main() {
String str;
str = "Hello";
cout << str;
}
Итак str
вернуть character array
, а также cout
можете распечатать его на экране. Как я могу достичь этого в моем классе? (Кстати, я знаю, что уже есть строковый класс. Это упражнение для Data Structures
урок)
Это, вероятно, то, что вы имеете в виду:
std::ostream & operator << (std::ostream & os, const String & s)
{
return os << s.get_char_pointer();
}
Конечно, вам нужно будет изменить get_char_pointer
к тому, что работает для вашего String
,
Вы смотрите в неправильном направлении. Вы не должны str
в вернуть массив символов (что, конечно, не может) Хотя технически вы можете определить оператор преобразования на ваше String
Класс, это не рекомендуется, так как это может иметь непреднамеренный эффект.
Вместо, перегрузка operator<<
, давая свой класс в качестве второго аргумента, и выполняйте там потоковую передачу.