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

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

Войти
Регистрация
Восстановить пароль
 
pincet
1240 / 810 / 86
Регистрация: 23.07.2010
Сообщений: 4,134
#1

Code::Blocks+template ошибка - C++

17.09.2011, 15:14. Просмотров 907. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef BTREE_H_INCLUDED
#define BTREE_H_INCLUDED
 
template<class T>
class btree {
    public:
        btree():parent(0),left(0),right(0),data(0){};
        ~btree(){};
         btree*insert(btree*,T);
 
    private:
        btree*parent;
        btree*left;
        btree*right;
        T data;
};
 
template<class T>
btree* btree<class T>::insert(btree*node,T data_){
};
 
 
#endif // BTREE_H_INCLUDED
Ошибка такая - error: expected constructor, destructor, or type conversion before '*' token
Ошибка в строке №20
Где руки подправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2011, 15:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Code::Blocks+template ошибка (C++):

Error: template declaration of (Code::Blocks) - C++
Помогите побороть ошибки. Код:#include &lt;cstdlib&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; ...

Code Blocks ошибка - C++
Помогите разобраться, почему программа выдает ошибку.

Code Blocks ошибка - C++
/usr/include/c++/4.7/type_traits|1857| required from ‘class std::result_of&lt;std::_Mem_fn&lt;void (TftpServer::*)()&gt;(TftpServer)&gt;’| что...

ошибка компиляции Code::Blocks 12.11 - C++
Доброго времени суток. Установил Code::Blocks 12.11. до этого пользовалься десятой версией. проблема в том, что компиляция не проходит,...

Code::Blocks 13.12 и Lua = ошибка lua_open - C++
Привет, подскажите в чем проблема: этот код работает нормально: #include &lt;iostream&gt; extern &quot;C&quot; { #include &quot;include/lua.h&quot; ...

Ошибка библиотеки graphics.h в Code::Blocks - C++
Всем привет! Я работаю в CodeBlock когда пишу #include&lt;graphics.h&gt; все время выдает ошибку. Подскажите пожалуйста в чем дело!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LosAngeles
Заблокирован
17.09.2011, 15:18 #2
ну может заменить на btree<T>*. И вобще я бы везде добавил <T>
pincet
1240 / 810 / 86
Регистрация: 23.07.2010
Сообщений: 4,134
17.09.2011, 15:30  [ТС] #3
В шаблонах не силен пока, но
C++
1
btree<T>* btree<T>::insert(...)
помогло.
Подозреваю, что
C++
1
2
btree<int>b1(), btree<double>b2();
sizeof(b1)<sizeof(b2)
LosAngeles
Заблокирован
17.09.2011, 15:51 #4
на i386 - да
а вот на amd64 подозреваю, что нет(будет =). По 32 байта будут обе
pincet
1240 / 810 / 86
Регистрация: 23.07.2010
Сообщений: 4,134
17.09.2011, 16:00  [ТС] #5
не, я не к вопросу именно sizeof (адресной арифметике), а к тому, что компилятор (или стандарт?) не позволяет сделать так, как я хотел изначально. Может, гуру прокомментируют?

Добавлено через 2 минуты
Цитата Сообщение от LosAngeles Посмотреть сообщение
на i386 - да
а вот на amd64 подозреваю, что нет(будет =). По 32 байта будут обе
у мну, кстати - 16 и 24
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.09.2011, 16:02 #6
Цитата Сообщение от LosAngeles Посмотреть сообщение
И вобще я бы везде добавил <T>
По крайней мере внутри класса не стоит (Class будет неявно рассматриватся как Class<T>), читатся лучше будет.
LosAngeles
Заблокирован
17.09.2011, 16:06 #7
Цитата Сообщение от pincet Посмотреть сообщение
у мну, кстати - 16 и 24
потому что у тебя не 64битная система


Цитата Сообщение от pincet Посмотреть сообщение
что компилятор (или стандарт?) не позволяет сделать так, как я хотел изначально.
я лично первый раз вижу такую запись btree* btree<class T>::insert(btree*node,T data_)
что ты хотел сделать то? подозреваю что стандартом не поддерживается такой синтаксис, потому что он не нужен?
pincet
1240 / 810 / 86
Регистрация: 23.07.2010
Сообщений: 4,134
17.09.2011, 16:12  [ТС] #8
Цитата Сообщение от LosAngeles Посмотреть сообщение
потому что у тебя не 64битная система



я лично первый раз вижу такую запись btree* btree<class T>::insert(btree*node,T data_)
что ты хотел сделать то? подозреваю что стандартом не поддерживается такой синтаксис, потому что он не нужен?
да не, это из старых изысков моих. template изучаю - ошибся маленько, ну и в эху запостил.
Конечно btree*btree<T> имелось ввиду(как выяснилось, btree<T>*btree<T>::insert)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2011, 16:12
Привет! Вот еще темы с ответами:

Idle code blocks ошибка Target uses an invalid compiler; run aborted - C++
idle code blocks помогите ошибка Target uses an invalid compiler; run aborted

Code Blocks. Ошибка при компиляции "неправильный компилятор" - C++
Помогите разобраться. Качал пару версий code block - создаю новый проект, выбираю консоль, с++, пишу код (hello world:)), run and build -...

Ошибка в Code::Blocks "Process terminated with status 0" - C++
Здравствуйте) Пытаюсь откомпилировать этот код в Code::Blocks 13.12 (сам код из книги по OpenGL) . Среда настроена, как сказано...

Code::Blocks ошибка компиляции "fatal error iostream no such file or directory" - C++
Всем привет ! Я очень давно хотел научиться программировать и вот решил начать . Сначала посоветовали программу Dev C++ , но потом я...


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

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

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