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

Перегрузка оператора << - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как использовать класс описанный в другом файле http://www.cyberforum.ru/cpp-beginners/thread808803.html
Есть проект, несколько файлов, в одном из них описаны классы. Как использовать эти классы в других файлах?
C++ String to DWORD Есть адрес переменной в виде (0x7515A0FA), хранящийся в переменной string. Как переделать в DWORD? http://www.cyberforum.ru/cpp-beginners/thread808802.html
C++ Интерфейсы, сокрытие реализации и "уход" за памятью
Всем привет! Вот вобщем-то такая штука: есть интерфейс и функция создающая экземпляр интерфейса в DLL. Функция создает экземпляр в куче (операцией new:) используя класс, наследуемый от интерфейса. Как правильно удалять этот экземпляр или еще лучше чтобы он удалялся автоматически. Вот интерфейс и функция в хидере DLL: #pragma once class API IMyInterface { public: virtual void...
Дана строка символов, состоящая из букв и цифр. Удалить из строки все цифры C++
Нужна прога... Дана строка символов, состоящая из букв и цифр. Удалить из строки все цифры. Буду очень признательна
C++ Число Фибоначчи через рекурсию http://www.cyberforum.ru/cpp-beginners/thread808772.html
Для заданного числа n посчитать числа ФИбоначчи (то есть число будет равно суме двух предыдущих), которое задано след. соотношениями: F(0)=F(1)=1, F(N)=F(N-1)+F(N-2), n>1 .
C++ Работа с fstream Допустим у нас есть такие данные в файле: 100 - long: ilafj iwnvwj bve bvjere*/g*-er/hg h rh gnedrfgve и имеем простой класс class A { private: int a; char b; char c; }; подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.03.2013, 22:31     Перегрузка оператора <<
у меня тоже std::cout << word хавает нормально, но на алгоритме спотыкается.
подозреваю это корни проблемы где-то в ADL (argement depended lookup) + где-то в недрах std есть переопределение оператора для пар + еще что-то. вот такой вариант начинает компилится:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using namespace std;
 
//typedef pair<string, vector<int> > Word;
struct Word : public pair<string, vector<int> > {};
 
ostream& operator << (ostream& out, const Word& word)
{
    out << word.first << " - ";
    copy(word.second.begin(), word.second.end() - 1, ostream_iterator<int>(out, ", " ) );
    out << *(word.second.end() - 1);
    return out;
};
 
int main()
{
    vector<Word> task;
    copy(task.begin(), task.end(), ostream_iterator<Word>(cout, "\n"));
    return 0;
}
 
Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru