Форум программистов, компьютерный форум 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++ Считывание отрицательных чисел из файла Собственно как считать из файла отрицательное число? Положительные числа считываются нормально, при считывание отрицательных программа зависает. подробнее

Показать сообщение отдельно
DrOffset
6450 / 3824 / 885
Регистрация: 30.01.2014
Сообщений: 6,618
19.11.2014, 14:41     Шаблонный класс. Ошибка : aggregate 'Box<info*> ob' has incomplete type and cannot be defined
Цитата Сообщение от Gr1f0nn Посмотреть сообщение
Если бы я хранил в контейнере только один тип данных, то я бы передавал info , а не info*, а так как я храню несколько типов данных, то я никак не могу хранить сами объекты, я могу хранить только указатели на них ( или я не прав?)
Не понимаю, честно говоря, твоих затруднений. Безотносительно даже текущего твоего кода:
C++
1
2
3
4
5
6
7
8
9
template <typename X>
class B
{
private:
    X * ptr;  // <-- Добавляем к X звездочку, получаем указатель
};
.....
// Шаблон инстанцируем как
B<SomeClass> p;
В чем проблема так делать?
Цитата Сообщение от Gr1f0nn Посмотреть сообщение
Собственно, опирался на опыт решения подобной задачи, но с использованием стандартных контейнеров ( в данном случае list) , где я также передавал не сам тип, а казатель на тип данных.
Посмотри на стандартный std::list, там передается именно тип элемента.
C++
1
std::list<SomeClass> lst; // элементами list будут объекты SomeClass
Если ты напишешь так:
C++
1
std::list<SomeClass*> lst; // элементами будут указатели на SomeClass
то элементом будет уже указатель, а не значение объекта типа SomeClass.
У тебя же, похоже, требовалась всегда именно последняя запись, потому что на нее была завязана работа твоего списка?
Цитата Сообщение от Gr1f0nn Посмотреть сообщение
Или это у меня ошибка в понимании того, что именно я должен хранить?
Похоже на то.

Добавлено через 3 минуты
Gr1f0nn, Если ты передаешь параметром указатель, то X = YourType *, к такому X не могут быть применены операторы разрешения области видимости ::. И код ломается. Чтобы это работало нужно передавать классовый тип. Об этом тебе и сообщил компилятор:
Цитата Сообщение от Gr1f0nn Посмотреть сообщение
ошибка: 'info*' is not a class, struct, or union type
 
Текущее время: 04:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru