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

Шаблонный класс. Ошибка : aggregate 'Box<info*> ob' has incomplete type and cannot be defined - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Посчитать количество нулевых элементов в массиве, вывести их индексы http://www.cyberforum.ru/cpp-beginners/thread1303562.html
делаю лабу, наполовину завершил, но наткнулся на эту задачу, хэлп.. Написать программу определения количества и номера индексов нулевых элементов массива вещественных чисел. Вывести на экран найденное количество, а также все найденные номера индексов. Заранее Thank's!
C++ Функции друзья в отдельном файле Здравствуйте уважаемые программисты ! У меня вопрос. При разбивке проекта, класс поместил в заголовочный файл, а как быть с его функциями друзьями ?) Тоже к нему в хэдер добавить ? Ведь прототип функции-друга находится внутри класса, и новый прототип за пределами класса с ключевым словом friend, создать не получится. http://www.cyberforum.ru/cpp-beginners/thread1303547.html
C++ Преобразовать в рекурсивную функцию
Помогите преобразовать следующий код так, чтобы вычисление функции происходило с помощью рекурсии... #include <cstdlib> #include <iostream> #include <math.h> using namespace std;
C++ Объединение чисел в пары
Нужна небольшая помощь. Задание звучит так: Даны n пар положительных чисел: (a1,b1),(a2,b2),...,(An,Bn). Определить: а)в какой паре среднее арифметическое значений чисел является максимальным. Если пар с макс. значением среднего арифметического несколько, найти номер последней из них; б)в какой паре среднее геометрическое значений чисел является максимальным. Если таких пар несколько, найти...
C++ LNK2019: о private и public в классе http://www.cyberforum.ru/cpp-beginners/thread1303538.html
Всем суп, есть беда: // "NAbstractNumber.h" class NAbstractNumber{ NAbstractNumber(){}; virtual std::string toString(int base = 10) const = 0; virtual NAbstractNumber & operator = (const NAbstractNumber &) = 0; };
C++ Считывание отрицательных чисел из файла Собственно как считать из файла отрицательное число? Положительные числа считываются нормально, при считывание отрицательных программа зависает. подробнее

Показать сообщение отдельно
Gr1f0nn
82 / 81 / 42
Регистрация: 30.09.2012
Сообщений: 408
18.11.2014, 15:44  [ТС]     Шаблонный класс. Ошибка : aggregate 'Box<info*> ob' has incomplete type and cannot be defined
info.cpp
Кликните здесь для просмотра всего текста
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
#include "info.h"
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
//info
 
info::info()
{
    message = "";
}
 
info::info(string _message)
{
    message = _message;
}
 
info::~info()
{
 
}
 
string info::get_info()
{
    return " " + message;
}
 
void info::set_message(string _message)
{
    message = _message;
}
 
string info::get_message()
{
    return string("Message: ") + message;
}
 
 
 
string info::get_type()
{
    return "info";
}
 
void info::set(string _message, string _nick)
{
 
}
 
void info::set_m(string _message)
{
    message = _message;
}
 
bool info::operator <(info x)
{
    if (message < x.message) return 1;
    else return 0;
}
 
bool info::operator >(info x)
{
    if (message > x.message) return 1;
    else return 0;
}
 
bool info::operator ==(info x)
{
    if (message == x.message) return 1;
    else return 0;
}
 
info& info::operator++()
{
    for (string::iterator p = message.begin() ; p != message.end() ; p++) {
        *p = toupper(*p);
    }
    return *this;
}
 
info info::operator++(int notused)
{
    info *temp;
    temp = this;
    ++*this;
    return *temp;
}
 
string info::get_m()
{
    return message;
}
 
string info::get_n()
{
 
}
 
void info::operator <<(int i)
{
    for (string::iterator p = message.begin() ; p != message.end() ; p++) {
        *p = *p - i;
    }
}
 
void info::operator >>(int i)
{
    for (string::iterator p = message.begin() ; p != message.end() ; p++) {
        *p = *p + i;
    }
}
 
info::info(const info &x)
{
    message = x.message;
}
 
info info::operator =(info x)
{
    message = x.message;
    return *this;
}


infoD

Кликните здесь для просмотра всего текста
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
131
132
133
// infoD
string infoD::get_type()
{
    return "infoD";
}
 
void infoD::set(string _message, string _nick)
{
    nick = _nick;
    set_message(_message);
}
 
void infoD::set_m(string _message)
{
 
}
 
infoD::infoD() : info()
{
    nick = "";
}
 
infoD::infoD(string _message, string _nick) : info(_message)
{
    nick = _nick;
}
 
infoD::~infoD()
{
 
}
 
void infoD::set_name(string _message, string _nick)
{
    nick = _nick;
    set_message(_message);
}
 
string infoD::get_message()
{
    return string("Message: ") + message + string(" Name: ") + nick;
}
 
 
string infoD::get_info()
{
    return " " + message + " " + nick;
}
 
bool infoD::operator >(infoD x)
{
    if ((message > x.message)&&(nick > x.nick)) return 1;
    else return 0;
}
 
bool infoD::operator <(infoD x)
{
    if ((message < x.message)&&(nick < x.nick)) return 1;
    else return 0;
}
 
bool infoD::operator ==(infoD x)
{
    if ((message == x.message)&&(nick == x.nick)) return 1;
    else return 0;
}
 
infoD::infoD(const infoD &x)
{
    message = x.message;
    nick = x.nick;
}
 
 
infoD infoD::operator =(infoD x)
{
    message = x.message;
    nick = x.nick;
    return *this;
}
 
ostream &operator<<(ostream &stream, info *x)
{
    stream << " " << x->get_type() << " " << x->get_info();
    return stream;
}
 
 
istream &operator>>(istream &stream, info *x)
{
    string
            _data,
            name;
 
            if(x->get_type() == "info")
            {
                stream >> _data;
                x->set_m(_data);
                return stream;
            }
            if(x->get_type() == "infoD")
            {
                stream >> _data;
                stream >> name;
                x->set(_data,name);
                return stream;
            }
}
 
string infoD::get_n()
{
    return nick;
}
 
void infoD::operator <<(int i)
{
    for (string::iterator p = message.begin() ; p != message.end() ; p++) {
        *p = *p - i;
    }
    for (string::iterator p = nick.begin() ; p != nick.end() ; p++) {
        *p = *p - i;
    }
}
 
void infoD::operator >>(int i)
{
    for (string::iterator p = message.begin() ; p != message.end() ; p++) {
        *p = *p + i;
    }
    for (string::iterator p = nick.begin() ; p != nick.end() ; p++) {
        *p = *p + i;
    }
}
 
Текущее время: 05:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru