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

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

Войти
Регистрация
Восстановить пароль
 
septe-mber
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 123
#1

undefined reference to `CList<int>::show()' - C++

21.01.2013, 09:14. Просмотров 363. Ответов 1
Метки нет (Все метки)

привет ! написал этот код в eclipse
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef CLIST_H_
#define CLIST_H_
 
template<class T>
class CList
{
public:
    CList();
    void push_back(T);
    void show(void);
    virtual ~CList();
private:
    struct node
    {
        T data;
        node* next;
    };
    node* pnode;
};
 
#endif /* CLIST_H_ */

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
#include "CList.h"
#include <iostream>
 
template<class T> void CList<T>::push_back(T value)
{
    node* tmp = new node;
    tmp->data = value;
    tmp->next = NULL;
    if(pnode == NULL)
        pnode = tmp;
    else
    {
        node* current = pnode;
        while(current->next != NULL)
            current = current->next;
        current->next = tmp;
    }
}
 
template<class T> void CList<T>::show(void)
{
    while(pnode != NULL)
    {
        std::cout<<pnode->data<<'\t';
        pnode = pnode->next;
    }
}
 
template<class T> CList<T>::CList()
{
    pnode = new node;
    pnode->next = NULL;
}
 
template<class T> CList<T>::~CList()
{
    delete pnode;
    pnode = NULL;
}

C#
1
2
3
4
5
6
7
8
9
10
11
12
#include "CList.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    CList<int> list;
    list.push_back(34);
    list.show();
    return 0;
}

почему при компиляции вылетает такая ошибка ? что не так я делаю ?
Миниатюры
undefined reference to `CList<int>::show()'  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2013, 09:14     undefined reference to `CList<int>::show()'
Посмотрите здесь:

Undefined reference to Change_Array(int, int) - C++
Приветствую всех желающих помочь Третьи сутки осваиваю функции C++, вторые сутки бьюс не на жизнь, а на смерть с // undefined...

Undefined reference to `Vector::SetElem(int, double)'| - C++
Делал по методичке, но не могу понять, в чем проблема? в гугле что нашел это с названиями или подключаемыми файлами проблема. Но названия...

Ошибка компиляции undefined reference to `Polygon::Polygon(Point const*, int)' - C++
#include &quot;Polygon.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; using std::cout; using std::endl; int main() ...

undefined reference to `variable` - C++
Вобщем то есть заголовочный файл main.h #ifndef _MAIN_H #define _MAIN_H #include &lt;vector&gt; #include &lt;windows.h&gt; using...

Problem - Undefined reference to - C++
Доброго времени суток и спасибо заранее за Вашу помощь. В качестве хобби начал изучать C++. Прочитал немного материала на сайтах и...

undefined reference / android - C++
android 4.1.2 samsung i9300 CCTools c4android GradeBook.h

Undefined reference to `auxDIBIm - C++
Здравствуйте, использую Dev C++. при компиляции проекта выдаёт ошибку Undefined reference to `auxDIBIm (на скриншоте) библиотека glaux.lib...

undefined reference to `vtable for - C++
Вылетает эта ошибка при компиляции вот этого класса: class BrassPlus : public AcctABC { private: double maxLoan; double...

undefined reference to winmain@16 - C++
pomogite 4to takoi undefined reference to winmain@16? ya ya napisal metoda sortirovka viborom

undefined reference to `gzdopen' - C++
Здравствуйте, уважаемые форумчане! Нужна ваша помощь. Среда - Dev-Cpp. Пытаюсь написать программу с использованием zlib. ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grindaah
20 / 20 / 0
Регистрация: 25.05.2011
Сообщений: 62
21.01.2013, 15:53     undefined reference to `CList<int>::show()' #2
http://www.parashift.com/c++-faq-lit...n-vs-decl.html

Clearly somebody somewhere is going to have to use the "pattern" for the constructor definition and for the someMethod() definition and instantiate those when T is actually int. But if you had put the definition of the constructor and someMethod() into file Foo.cpp, the compiler would see the template code when it compiled Foo.cpp and it would see Foo<int> when it compiled Bar.cpp, but there would never be a time when it saw both the template code and Foo<int>. So by rule #2 above, it could never generate the code for Foo<int>::someMethod().
Так что:
CList.h:

Кликните здесь для просмотра всего текста

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
#ifndef CLIST_H_
#  define CLIST_H_
 
#include <iostream>
 
template<class T>
class CList
{
public:
    CList();
    void push_back(T);
    void show(void);
    virtual ~CList();
private:
    struct node
    {
        T data;
        node* next;
    };
    node* pnode;
};
 
template<class T>
CList<T>::CList()
{
    pnode = new node;
    pnode->next = NULL;
}
 
template<class T>
CList<T>::~CList()
{
    delete pnode;
    pnode = NULL;
}
 
template<class T>
void CList<T>::push_back(T value)
{
    node* tmp = new node;
    tmp->data = value;
    tmp->next = NULL;
    if(pnode == NULL)
        pnode = tmp;
    else
    {
        node* current = pnode;
        while(current->next != NULL)
            current = current->next;
        current->next = tmp;
    }
}
 
template<class T>
void CList<T>::show(void)
{
    while(pnode != NULL)
    {
        std::cout<<pnode->data<<'\t';
        pnode = pnode->next;
    }
}
 
 
#endif /* CLIST_H_ */
Ответ Создать тему
Опции темы

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