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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
krow7
1 / 1 / 0
Регистрация: 12.11.2009
Сообщений: 99
#1

cout и объект класса - C++

16.10.2012, 20:42. Просмотров 387. Ответов 5
Метки нет (Все метки)

Здравствуйте, форумчане.

Есть класс, который реализует список. Необходимо, чтобы при записи
C++
1
2
List* MyList = new List;
cout << MyList;
выводились элементы списка. Т.е. нужно объект класса привести к строчному типу?
Среда Visual Studio 2011, Проект Win32 Console Application.
Совсем не знаком с потоковым вводом\выводом, подскажите, пожалуйста, куда копать, что почитать.
C++
1
cout << 12;
понятно, что выведет 12. А вот как быть с объектом, не соображу
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 20:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос cout и объект класса (C++):

При компиляции объект cout выводит ноль - C++
Подскажите, что изменить в проге, чтоб ноль не выводился? #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;clocale&gt; using...

Нюансы ввода/вывода в Си и C++ (функция printf() и объект std::cout) - C++
Добрый день. Интересует следующий вопрос: каким именно образом работает команда форматирование &quot;%i&quot; в printf. В манах написано что...

Указатель на объект базового класса и адрес объекта производного класса - C++
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; } ~Class1() {delete j;}

как узнать,является данный объект класса А1 наследником класса А2 - C++
Всем привет)есть классы S, A1, A2, B1, B2. Иерархия наследования следующая S - Является родителем для всех классов и он имеет...

Использование в качестве поля класса указатель на объект другого класса - C++
Ошибка в названии - &quot;указателЯ&quot; Вот, пытаюсь освоить ООП (пока только учусь): создаю класс person (человек) и car (модель машины). ...

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
16.10.2012, 20:51 #2
вам нужно перегрузить оператор <<.
прототип перегруженного оператора примерно так:
C++
1
friend ostream& operator<<(ostream& out, const List& t);
определяете в этой функции что вам нужно
Почитайте про перегрузку операторов в любом учебнике.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2012, 20:53 #3
В классе List нужно перегрузить оператор << (пример в предыдущем посте). В реализации просто переписываете вывод списка (наверное, есть), заменив cout на out.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
16.10.2012, 20:56 #4
нужно переопределить оператор << и в теле оператора расписать как и что должно выводится. Но это будет выводится только для объектов класса List
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6447 / 3094 / 306
Регистрация: 04.12.2011
Сообщений: 8,567
Записей в блоге: 4
16.10.2012, 20:58 #5
Цитата Сообщение от krow7 Посмотреть сообщение
Есть класс, который реализует список. Необходимо, чтобы при записи
C++
1
2
List* MyList = new List;
cout << MyList;
выводились элементы списка. Т.е. нужно объект класса привести к строчному типу?
Среда Visual Studio 2011, Проект Win32 Console Application.
C++
1
cout << 12;
понятно, что выведет 12. А вот как быть с объектом, не соображу
krow7, привести объект к строчному типу можно. Но тогда самому нужно будет определить, что это значит. Пишите метод string ToStr() или как то еще и сделайте так чтобы он возвращал то из объекта, что Вам нужно в виде строки.
Можно написать метод void Show() который обернет cout'ы выводящие необходимые поля.
И наконец можно перегрузить оператор << , тогда можно использовать объект c потоками и cout, в частности.
krow7
1 / 1 / 0
Регистрация: 12.11.2009
Сообщений: 99
16.10.2012, 22:36  [ТС] #6
Всем спасибо за бурную реакцию и подробные оперативные ответы. Разобрался. Вы кул ребята
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 22:36
Привет! Вот еще темы с ответами:

Правда, что указатель класса-наследника не может указывать на объект класса-родителя? - C++
Доброго времени суток! Пример кода ниже. Правда ли , что указатель класса-наследника не может указывать на объект класса-родителя? ...

Создать объект внутри класса, который может вызывать функцию этого класса - C++
Ребята помогите уже несколько дней мучаюсь. Хочу сделать программу в консоле демонстрации работы лифта в здании 2 этажа. Сделал класс...

Создание статической функции класса, которая принимает экземпляр этого же класса как объект - C++
Привет. Есть такой код class Model { public: Model(); Model(int verticesSize, int facesSize); ~Model(); static void...

Вызов динамического метода класса по указателю на объект класса - C++
Как это можно сделать? И хотелось бы как можно проще.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.10.2012, 22:36
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru