Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1

Конструктор шаблона класса

01.09.2012, 16:17. Показов 2978. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть описание класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <class Type>
struct Link {
    Link *Prev, *Next;
     Type Data; };
// ---------------------------------------------------------------------------
 
template <class Type>
class TChain2 {
    public:
    Link<Type> *DA;
    TChain2();
    ~TChain2(void);};
есть реализация
C++
1
2
3
4
5
6
7
8
template <class Type>
TChain2<Type>::TChain2<Type>(){
    DA = NULL;
};//---------------------------------------------------------------------------
 
template <class Type>
TChain2<Type>::~TChain2(void) {
};//---------------------------------------------------------------------------
Есть объявление переменной
C++
1
 TChain2<int> TT;
и соответственно есть ошибки при запуске:
[ILINK32 Error] Error: Unresolved external 'TChain2<int>::~TChain2<int>()' referenced from ...\PROJECTS\TEMP\DEBUG_BUILD\UNIT1.OBJ
[ILINK32 Error] Error: Unresolved external 'TChain2<int>::TChain2<int>()' referenced from ...\PROJECTS\TEMP\DEBUG_BUILD\UNIT1.OBJ

Что я делаю не так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.09.2012, 16:17
Ответы с готовыми решениями:

Создать класс наследник от класса TForm1. Определить конструктор без параметров для дочернего класса
Доброго всем времени суток. Помогите решить проблемку. Хочу создать класс наследник от класса TForm1. Делаю это (наследование) для...

Конструктор класса
Привет народ))) Нужно зделать конструктор класса в котором будут заносится даные с StringGrid(a) в матрицу которая описаная в классе. В...

Создание класса, конструктор
задания создать класс с полями(Книга: название, кол. страниц, цена) Реализовать в классе методы: - конструктор по умолчанию ...

12
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
01.09.2012, 16:38
C++
1
2
3
4
5
template <class Type>
TChain2<Type>::TChain2()
{
    DA = NULL;
};
0
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
01.09.2012, 16:53  [ТС]
ровным счетом ничего опять
[ILINK32 Error] Error: Unresolved external 'TChain2<int>::~TChain2<int>()' referenced from ...\PROJECTS\TEMP\DEBUG_BUILD\UNIT1.OBJ
[ILINK32 Error] Error: Unresolved external 'TChain2<int>::TChain2<int>()' referenced from ...\PROJECTS\TEMP\DEBUG_BUILD\UNIT1.OBJ

на заметку С++ Builder XE
Все 3 секции в разных файлах:

обьявление на клике кнопки в форме, описание в файле *.h описание в файле *.cpp

Добавлено через 9 минут
нашел проблему, он не видит всего что в cpp, хотя он к проекту подключен...
#include <chain.H> -так не видит

#include <chain.H>
#include <chain.cpp> - так видит

как это решить?
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
01.09.2012, 17:00
C++
1
TChain2<int> TT();
0
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
01.09.2012, 17:55  [ТС]
Цитата Сообщение от kzru_hunter Посмотреть сообщение
Код C++
TChain2<int> TT();
это ответ на что?

Добавлено через 3 минуты
#include <chain.cpp> - закоментировал
TChain2<int> TT();
а как теперь обращаться к этому?
если TT-> E2288 Pointer to structure required on left side of -> or ->*
а если TT. E2294 Structure required on left side of . or .*

Добавлено через 2 минуты
и вообще что это такое TT() за объявление переменной?
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
01.09.2012, 18:55
MrAndrey_ka
Вот темка: Шаблоны
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
01.09.2012, 19:02
Описания методов шаблонных классов должны быть в одном модуле с объявлением самого класса. Такое вот ограничение, ничего не поделаешь.
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
01.09.2012, 19:28
Цитата Сообщение от ForEveR Посмотреть сообщение
Можно разнести только в том случае, если знаете какие типы будут использоваться.
BRcr а такое возможно в Билдере?
я пробовал, не получалось: добавлял
C++
1
template TChain2<int>;
в cpp файл, в котором находится реализация шаблона, но выдает ошибку:
[BCC32 Error] Unit3.cpp(13): E2505 Explicit instantiation requires an elaborated type specifier (i.e., "class foo<int>")
Добавлено через 10 минут
Цитата Сообщение от kzru_hunter Посмотреть сообщение
я пробовал, не получалось: добавлял Код C++
template TChain2<int>;
разобрался, надо было:
C++
1
template class TChain2<int>;
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
01.09.2012, 19:29
Английским по белому же написано, что спецификатор типа забыли, то бишь так надо: template class TChain2<int>;
0
8 / 8 / 1
Регистрация: 11.02.2013
Сообщений: 69
16.02.2013, 22:52
Допустим у меня есть шаблонный класс
template <class data_t> class Number
{
data_t n;
}
Как написать конструктор с параметром,если компилятор реагирует на типы данных?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
16.02.2013, 23:08
C++
1
2
3
4
5
template <class data_t> class Number
{
data_t n;
__fastcall Number( data_t & _n ) { n = _n; }
}
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
17.02.2013, 03:22
C++
1
2
3
4
5
6
7
template <class data_t> class Number
{
data_t n;
Number(data_t n_);
{ n=n_;
}
}
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
17.02.2013, 11:35
Тип шаблона вполне может в итоге оказаться какой-нибудь объемной структуркой. Совершенно незачем пихать его в стэк, поэтому ссылка лучше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2013, 11:35
Помогаю со студенческими работами здесь

Gtest, доступ к элементам базового класса-шаблона без указания параметров шаблона. баг или фича?
Всем привет. Продолжаю экспертизу gtest/gmock. Количество ошибок и багов зашкаливает. Ничего удивительного, учитывая то, ...

Конструктор шаблона класса
Добрый день. Столкнулся с проблемой: имеется код template &lt;class L&gt; class smthing { private: ..... public: ...

Конструктор-копирование шаблона класса
Объясните пожалуйста, что я делаю не так.

Конструктор класса не видит конструктор по умолчанию другого класса
Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса TailNode нет конструктора по умолчанию, хотя он там, конечно, есть....

Определение метода-шаблона за пределами шаблона класса
День добрый! Разбираюсь в шаблонах, решил копнуть поглубже. Вот пример: template &lt;typename T1&gt; class K // шаблон класса { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru