Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как реализовать метод ToString? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перенос на новую строку http://www.cyberforum.ru/cpp-beginners/thread913064.html
У меня довольно длинная функция класса, которая от меня то и не зависит, но нужно её вписать, строка получается длинная и хочется перенести на новую строчку часть, вот пример:...
C++ Функция textattr в С++ Здравствуйте. Функция которая задает одновременно цвет текста и фона. В Интернете очень мало информации про нее, обьясните как ее используют, какие параметры передают и т.п. Спасибо. http://www.cyberforum.ru/cpp-beginners/thread913060.html
Вызов функции в ребенке C++
Доброе время суток. Есть класс A и в нем есть функция void funcA(void). И есть каласс B : public A который унаследует A. Но когда я пишу в конструкторе класса B у меня выводит ошибку о нарушении...
C++ Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #include <iostream> #include <string.h> #include <cstdlib> using...
C++ Жадный алгоритм на графе http://www.cyberforum.ru/cpp-beginners/thread913028.html
Собственно, нужно написать программу поиска кратчайшего пути на графе "жадным методом". То есть, дан ориентированный взвешенный граф (можно и неориентированый, как получится) и у рёбер даны их длины...
C++ Запись класса в файл Доброго времени суток! Вот появился тупик, есть базовый класс и производные классы class Figure{ protected: int x,y; TColor color; int size; int type; ... подробнее

Показать сообщение отдельно
lowercase
212 / 201 / 34
Регистрация: 09.05.2012
Сообщений: 494
27.06.2013, 12:23
В таких языках как C# и Java метод toString() широко используется и служит для представления данных обьекта в виде строки. В этого метода (в выше приведенных языках) есть определнная реализация по-умолчанию (например, в java возвращается строка с полным именем класса + '@' + хеш код обьекта), которую можно свободно перепределить при надобности.

например у вас есть класс:
C++
1
2
3
4
5
6
7
8
9
10
11
class Car {
   string brand;
   string model;
   int color;
   Engine engine; // для простоты предположим что этот класс уже описан
public:
   string toString() { 
      string str = brand + ": " + model;
      return str;
   }
}
это одна из возможных реализаций этого метода. как видете вы никому не обязаны возвращать в строковом представлении полностью всю информацию которую хранит обьект, но темнеме сделать это вам тоже никто не запрещает.
будь у Engine тоже метод toString() было бы очень весело:
C++
1
2
3
4
string toString() { 
   string str = brand + ": " + model + "; color: " + nameForColor(color) + "; engine: " + engine.toString();
   return str;
}
то есть как видите реализация может быть разной. все зависит от ваших нужд. если обьект имеет очень много полей то его строковое представление будет очень громоздким, особенно если вызывать toString() для всех обьектов которые используются в текущем классе в качестве полей.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru