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

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

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

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

21.01.2013, 09:14. Просмотров 379. Ответов 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;
}

почему при компиляции вылетает такая ошибка ? что не так я делаю ?
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()' (C++):

[Linker error] undefined reference to `sterling(int, int, int)' - C++
#include &lt;iostream&gt; using namespace std; int sterling(int,int,int); int sterling(int,int); int sterling(int); int main() { ...

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() ...

Ошибка [Linker error] undefined reference to `Vector::Vector(int)' - C++
Добрый день. Делал по методички, и почему-то валятся ошибки... файл lab9_main.cpp #include &lt;iostream&gt; #include &quot;Vector.h&quot; int...

Ошибка при компиляции undefined reference to `List<int>::List()'| - C++
Доброго времени суток=) столкнулась с такой проблемой нужно написать шаблон класса. При компиляции выдает ошибку undefined reference to...

1
grindaah
20 / 20 / 0
Регистрация: 25.05.2011
Сообщений: 62
21.01.2013, 15:53 #2
http://www.parashift.com/c++-faq-lite/templates-defn-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_ */
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2013, 15:53
Привет! Вот еще темы с ответами:

Странная ошибка: [Linker error] undefined reference to `__dyn_tls_init_callback' [Linker error] undefined reference to ld returned 1 exit status - C++
Здравствуйте. Вот недавно начал изучать книгу &quot;С++ для чайников&quot; Стефан Р. Девис 4-е издание. И напоролся на кучу ошибок) Но смог все...

Undefined reference to - C++
Помогите, пожалуйста. Нужно было написать программу с использованием шаблона. Появляется ошибка &quot;undefined reference to...

Undefined reference to - C++
Matrix.h #pragma once #include &lt;iostream&gt; template &lt;typename T&gt; class Matrix { private: int n1, n2; T **mas; public:...

undefined reference to `A::a' - C++
//==========================================================================================================================================...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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