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

Перегрузка оператора вывода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Стек http://www.cyberforum.ru/cpp-beginners/thread311766.html
В стеке вместо всех локальных минимумов вставить 0. :scratch: Кто знает, помогите пожалуйста
C++ Считать мусор из файла Здравствуйте!!! Мне нужно вывести на экран любой файл, который я открыл. И не важно знать его структуру, пусть выведет мусор, но хоть выведет :))) Загвоздка в том, что у меня выводятся на экран только текстовые файлы, а я хочу картинки, экзешники, вообщем любые другие расширения #include <stdio.h> #include <conio.h> http://www.cyberforum.ru/cpp-beginners/thread311761.html
C++ Найти максимальный отрицательный элемент каждой строки матрицы
Здравствуйте, помогите, пожалуйста, написать программу на С. Задание Написать программу, которая: - вводит из файла In.txt матрицу А(M,N), где M(число строк) и N(число столбцов) не превышают десяти; - выполняет действия в соответствии с вариантом заданием; - выводит в файл значения М и N, исходную матрицу и массив с результатами. По умолчанию все массивы вещественные Вариант 6.Найти...
про слова и предложение C++
Привет всем;) Уже второй день мучаюсь но не могу решить задачи 1)Дано предложение.Напечатать все символы, расположенные между первой и второй запятой. Если второй запятой нет, то должны быть напечатаны все символы,расположенные после единственной имеющейся запятой. 2)Даны 2 слова. Для каждой буквы первого слова(в том числе для повторяющихся в этом слове букв) определить,входит ли...
C++ Общение с COM портом http://www.cyberforum.ru/cpp-beginners/thread311718.html
Люди, подскажите, как мне отправить строчку в HEX типа: 3A 30 31 30 36 в ком порт? Открыл порт этим - CreateFile всё там настроил, всё ОК. Но вот строка, которую я отправляю посредствам: BOOL WINAPI WriteFile( __in HANDLE hFile, __in LPCVOID lpBuffer, __in DWORD nNumberOfBytesToWrite, __out_opt LPDWORD lpNumberOfBytesWritten, __inout_opt ...
C++ Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В. Выполнить с использованием указателей и без. Получилось только матрицу вывести. И то при каждом новом запуске выдает одни и те же значения. #include <iostream.h> #include <iomanip.h> #include <stdlib.h> void main() { подробнее

Показать сообщение отдельно
LORDIFF
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 3
03.06.2011, 15:23     Перегрузка оператора вывода
Пытаюсь написать программку, но возникла ошибка с выводом информации на экран.
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
int MAX_ARRAY_SIZE = 2147483647;
 
template <typename Type1, 
          typename Type2,
          typename Type3>
class SQL {
private:
    int iterator;
    const int max_arr;
 
    vector<Type1> info1;
    vector<Type2> info2;
    vector<Type3> info3;
 
public:
    SQL() : iterator(0), max_arr(MAX_ARRAY_SIZE) {}
    SQL(int arr) : iterator(0), max_arr(arr) {}
    void push_back(Type1 info1_ = NULL, Type2 info2_ = NULL, Type3 info3_ = NULL){
        if(iterator) ++iterator;
        if(iterator > max_arr) {
            string err = "Out of range!";
            throw err;
        }
        info1.push_back(info1_);
        info2.push_back(info2_);
        info3.push_back(info3_);
    }
    SQL operator()(const int &i = 0, const int &section = 0){
        if(section < 0 || section > 2) {
            string err = "Wrong choosing the section of array!";
            throw err;
        }
        if(i < 0 || i > max_arr) {
            string err = "Error in choosing a cell in an array!";
            throw err;
        }
        switch (section){
            case 0:
                return info1[i];
                break;
            case 1:
                return info2[i];
                break;
            case 2:
                return info3[i];
                break;
        }
    }
    
};
 
/////////////////////////////////////////////
////////////////////////////////////////////
////////////////////////////////////////////
 
namespace _ERROR_ {
    class _ERROR {
    private:
        const string error;
        const string close;
    public:
        _ERROR(const string &err): error(err), close("Press any key to break the programm!") {}
        void show_error() { 
            cout << error << endl;
            cout << close << endl;
        }
    };
}
int main(int argc, char *argv[])
{
    wcout.imbue(locale(".866")); //Русская кодировка
    system("COLOR 0A");
    srand(time(NULL));
    for(;;){
        try{
            SQL<string, int, double> Arr;
            Arr.push_back("Hello", 23, 34.53);
            cout << Arr(0, 1);
        } catch(const string error){
            _ERROR_::_ERROR err(error);
            err.show_error();
            getch();
            return 1;
        }
    }
    getch();
    return 0;
}
Не работает команда
C++
1
cout << Arr(0, 1);
Error 2 error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'SQL<Type1,Type2,Type3>' (or there is no acceptable conversion)

Я так понимаю, тут необходимо перегрузить оператор вывода, но как я не бился, заставить работать этот код, я не смог.
Помогите пожалуйста, буду благодарен за любые подсказки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru