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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
DammiTT
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 3
#1

ошибка при компиляции проги, использущей шаблоны классов - C++

02.06.2012, 12:38. Просмотров 1409. Ответов 5
Метки нет (Все метки)

Возникла ошибка при компиляции проги, использующей шаблоны.
Ошибка - undefined symbol /*...*/ in module main.cpp
(линковщик не может найти реализацию функции класса)

Пусть есть 3 файла (temp.h, tenp.cpp, main.cpp), соответственно первые 2 файла - это объявление и реализация класса, использующего шаблоны,т.е. что-то типа
template <class C> Temp
{
// ...
}

Вообще по ходу надо помещать объявление и реализацию в один класс (при использовании шаблонов) - тогда все работает, но если разбить на 2 файла (объявление и реализация), то ни фига не работает =(
Версия компилятора borland c++ 3.1.

В help-е пишут что-то типа: надо использовтаь опцию компилятра -Jgx при компиляции, чтобы была возможность слинковать файл с реализацией класса, использующего шаблоны, но я че-то не догоняю, как это сделать.... Из среды никак, а как компилить из командной строки - не знаю =(

Вроде бы проблема стандартная, но че-то найти ее решения не могу =(

Может кто-нибудь знает ее решение ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2012, 12:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ошибка при компиляции проги, использущей шаблоны классов (C++):

Ошибка при компиляции с методами классов - C++
При компиляции кода выдает следующие ошибки: \main.cpp(44) : error C2511: 'double P::area(double,double,double)' : overloaded member...

Странная ошибка при компиляции очень очень большой проги ,,boomerang,, - C++
Я в общем, даже и не представляю, куда смотреть в поисках ошибки. Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...

Шаблоны странная ошибка во время компиляции - C++
Добрый день. Давно не работал с шаблонами... Вроде всё верно, но компилятор выдаёт ошибку: error: undefined reference to...

Шаблоны классов. Ошибка параметра по умолчанию - C++
Есть template &lt;class data_type&gt; class List; и typedef unsigned char point_dist; template &lt;class data_type = point_dist&gt; class...

Шаблоны классов: непонятная ошибка в одном из методов класса - C++
Задача создать шаблон двоичного дерева поиска. В методе удаления узла IntelliSense выдает ошибку: ссылается на if и пишет: &quot;требуется...

Шаблоны классов. Ошибка `unable to match function definition to an existing declaration` - C++
#pragma once template &lt;typename T = int&gt; class SingleBuffer { public: SingleBuffer(T fd): field(fd), state(true){} ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100
02.06.2012, 15:23 #2
чем не устраивает помещение реализации методов в объявлении класса?
0
DammiTT
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 3
02.06.2012, 17:12  [ТС] #3
Цитата Сообщение от arist
чем не устраивает помещение реализации методов в объявлении класса?
просто нужно отделить определение от реализации =(
0
John Paramol
Сообщений: n/a
03.06.2012, 11:07 #4
пишется следующим образом:
#pragma option -Jgx
но я не уверен, что нужна именно эта опция
DammiTT
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 3
03.06.2012, 12:18  [ТС] #5
Цитата Сообщение от John Paramol
пишется следующим образом:
#pragma option -Jgx
но я не уверен, что нужна именно эта опция
нужна то вроде эта опция, но ее передавать в прагму нельзя =(

Есть другие варианты ?
0
John Paramol
Сообщений: n/a
13.06.2012, 11:12 #6
Цитата Сообщение от DammiTT
но ее передавать в прагму нельзя =(
А что мешает?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2012, 11:12
Привет! Вот еще темы с ответами:

Синтаксические ошибки при компиляции классов - C++
// DiscreteMath_Lab11.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include...

Наследование классов, ошибки при компиляции - C++
У меня проблемы программы возникают при компиляции. Я читаю, что использование спецификатора protected позволяет видеть поля,...

Шаблоны. Ошибка компиляции: "Не удается сопоставить определение функции существующему объявлению" - C++
vector.h #pragma once #ifndef _VECTOR_H #define _VECTOR_H #include &lt;exception&gt; template&lt;typename T&gt; class vector...

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку приложения. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.06.2012, 11:12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru