2015-02-27 3 views
0

У меня есть вопрос относительно оператора < < перегрузка. Мне нужно использовать его в своей домашней работе, чтобы вернуть содержимое вектора. Я думаю, что мой метод работы работает, однако я совершенно не знаю, как назвать его в другом классе.Оператор C++ << (ostream os, obj objName)

Вот мой оператор в моем классе ColonneCartes.cpp:

ostream& operator<<(ostream & os, const ColonneCartes & p_colonneCartes) 
{ 
    for (int i = 0; i < myVector.size(); i++) 
    { 
      os << myVector.at(i).getValue(); 
    } 

    return os; 
}; 

Я пытаюсь вызвать его из другого класса, чтобы показать его в консоли, и я не нашел, как это сделать еще.

Мой второй вопрос заключается в возвращении в моем операторе содержимого векторного объекта, и я хотел знать, есть ли другой способ, чем использовать цикл, подобный этому, для возврата содержимого?

Большое спасибо!

+0

Как вы называете это из другого класса, чтобы показать его в консоли? Соответствующий код был бы полезен. – Marcin

+1

http://stackoverflow.com/help/mcve Что не работает? Что вы ожидаете от этого? Вызов 'myVector' должен быть, вероятно,' p_colonneCartes.myVector'. – user657267

+0

Простите, что я не был чист, забыл об этом Андре, я подумал, что он используется как функция, но на самом деле это не так. Спасибо, в любом случае! – SkAshe

ответ

1

Консоль, на которую вы ссылаетесь, называется стандартным выходом (stdout). В C++, используя потоки для вывода на stdout, вы должны использовать объект std::cout от заголовка iostream.

Предположим, у вас есть colonneCartes объект типа ColonneCartes, то для того, чтобы вывести его myVector в стандартный вывод, написать:

#include <iostream> 
... 
std::cout << colonneCartes; 

operator<< вы написали, что позволяет объекты типа ColonneCartes, которые будут использоваться после <<.

+0

О, ладно, я думаю, что понял. Он не используется как функция, это то, что будет вызываться автоматически при использовании «<<». Благодаря! – SkAshe

Смежные вопросы