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

Как исправить ошибку с перегруженным оператором - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как возможно реализовать функцию кратных пробелов http://www.cyberforum.ru/cpp-beginners/thread598341.html
Как возможно реализовать такую функцию: Надо поверять каждый кратный 4 элемент строки на пробел, и заменять его на табуляцию, и если предыдущие до этого элемента в строке были пробелы , то и их в месте с ним(элементом кратным 4)заменить на табуляцию Должно получиться так 000' '0' '' '00' '' '' 'до замены 000\t0' '' '0\t после замены 0-символ ' ' пробел \t табуляция ПОМОГИТЕ КТО ЗНАЕТ....
C++ Уменьшить программу/снизить количество операторов В этой программе описан динамический массив, который сортирует числа по возрастанию. Можно ли как-нибудь уменьшить программу? #include <iostream> #include <conio.h> #include <stdlib.h> using namespace std; class Sort { private: http://www.cyberforum.ru/cpp-beginners/thread598336.html
C++ Абстрактные классы, виртуальные функции
Собственно сабж. нужна достаточно простая(не важно что выполняющая) программа с использованием абстрактных классов и виртуальных функций, было бы классно с комментариями, помогите ссылочкой)
Лабораторная работа. Массивы (задачки к экзамену) C++
Здравствуйте товарищи форумчани! Помогите пожалуйста с кодами задачек на экзамен! Задачи: 1) Вычислить сумму и число положительных элементов матрицы A, находящихся над главной диагональю. 2) Дан двумерный массив. Выяснить, есть ли столбцы с одинаковой суммой элементов. Если есть, вывести их номера. Заранее, большое вам спасибо!
C++ В одномерном массиве, состоящем из n вещественных элементов вычислить минимальный элемент массива и сумму элементов массива. [CPP] http://www.cyberforum.ru/cpp-beginners/thread598261.html
В одномерном массиве, состоящем из n вещественных элементов вычислить минимальный элемент массива и сумму элементов массива, расположенных между первым и последним положительными элементами. Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом - все остальные.
C++ Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова Даны текстовая строка и слово (например, ab). Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab), используя функции strtok, strlen, strcmp. решите плз подробнее

Показать сообщение отдельно
klukvennya
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 6

Как исправить ошибку с перегруженным оператором - C++

06.06.2012, 19:52. Просмотров 624. Ответов 2
Метки (Все метки)

Добрый вечер!
суть задания: Необходимо реализовать класс, который умеет хранить данные произвольных типов (int, char, любой другой объект класса - TComplex и CooperBy).

error C2593: неоднозначный 'operator <<'
выдает в главной ф-ции там, где написано cout
объясните пожалуйста в чем ошибка? как нужно?как избежать этого?

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
template <class T>                          //структура элемента стека
struct elem 
{
    T info;                                 // ячейка, содержащая информацию
    elem *next;                             // ячейка, содержащая адрес на следующий элемент
};
 
template <class ST>                         // стек
class STACK
{
private:
    elem <ST> *H;                           // указатель на начало стека
public:
    STACK() {H=NULL;}                       // констуктор
    ~STACK();                               // деструктор 
 
    void Push(ST);                          // помещение эл-та 
    ST Pop(void);                           // извлечение эл-та 
    void OutPut();                          // распечатка содержимого стека
    void Clear();                           // разрушение стека 
    void Menu(ST v);                        // меню
 
    friend ostream& operator<<(ostream &, ST &); // дружественная функция вывода
    friend istream& operator>>(istream &, ST &); // дружественная функция ввода
};
 
...
 
template <class ST>
ostream& operator<<(ostream &out, ST &s)
{
    out << s ;
    return out;
}   
 
template <class ST>
istream& operator>>(istream &in, ST &s)
{
    in >> s ;
    return in;
}
 
template <class ST>
void STACK <ST>::Menu(ST v)
{
    char key;
    do
    {
        cout<< " Выберите действие со стеком: \n";
        cout<< " 1. Помещение элемента в стек\n";
        cout<< " 2. Извлечение элемента из стека\n";
        cout<< " 3. Распечатка содержимого стека\n";
        cout<< " 4. Очищение стека\n";
        cout<< " 5. Выход\n";       
        key = getch();
        switch (key)
        {
        case '1':
            K++;
            cout<< "\n Введите новый элемент: ";
            in>> v;         
            Push(v);    
            system("cls");
            break;
        case '2':
            if (Pop())
            {
                cout<< "\n Значение: " << v << endl << " Элемент удален. Нажмите любую кнопку.";
                K--;
            }
            else
                cout<< "\n Стек пуст.\n";
            getch();
            system("cls");
            break;
        case '3':
            OutPut();
            getch();
            system("cls");
            break;
        case '4':
            Clear();
            K=0;
            system("cls");
            break;
        }
    }while (key!='5');
}
 
void main()
{
    setlocale(LC_ALL,"Russian");    
    char key;
    cout<< " Выберите тип данных: \n";
    cout<< " 1. целочисленный\n";
    cout<< " 2. символьный\n";
    cout<< " 3. комплексные числа\n";
    cout<< " 4. класс CooperBy\n";
    key = getch();
 
    system("cls");
    STACK <int> intStack; 
    STACK <char> charStack; 
    STACK <Complex> compStack;
    STACK <CooperBy> cStack; 
 
    switch (key)
    {
    case '1': 
        cout<< " *** Стек - целочисленный ***\n";
        int v; 
        intStack.Menu(v);
        break;
    case '2': 
        cout<< " *** Стек - символьный ***\n";
        char c;
        charStack.Menu(c);
        break;
    case '3': 
        cout<< " *** Стек - комплексные числа ***\n";
        TComplex xy();
        compStack.Menu(xy);
        break;
    case '4': 
        cout<< " *** Стек - другой класс ***\n";
        CooperBy b("iii", 5, 500);
        cStack.Menu(b);
        break;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru