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

Ошибка undefined reference to `QueueTp<Worker>::isfull() const' - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Самое длинное предложение http://www.cyberforum.ru/cpp-beginners/thread1180027.html
#include <iostream> #include <fstream> using namespace std; int main() { size_t pos_s = 0; size_t n = 0; size_t k = 0; size_t j = 0;
C++ Вычыслить сумму между двумя первыми положительными элементами матрицы #include <iostream> #include <ctime> #include <cstdlib> using namespace std; template<class Type, int size> class Matrix; template<class Type, int size> ostream& operator << ( ostream& out, Matrix<Type,size> object); http://www.cyberforum.ru/cpp-beginners/thread1180025.html
C++ Структура "Государство". Блочный ввод-вывод
Структура "Государство": - название; - столица; - численность населения; - занимаемая площадь. Удалить все элементы, у которых численность меньше заданной, добавить элемент после элемента с указанным номером. Описала структуру,сделала удаление.Не знаю как сделать добавление помогите пожалуйста. #include "stdafx.h" #include <iostream> #include <stdio.h>
C++ Реализация графа на основе списка смежности
Пытаюсь построить граф из автобусных остановок с помощью списка смежности, однако еще при создании массива его вершин при считывании общего их числа происходит "" Необработанное исключение в "0x0f55e42e (msvcr100d.dll)" в "lab42.exe": 0xC0000005: Нарушение прав доступа при записи "0x00000004" "". Буду очень рад, если кто-нибудь поможет разобраться почему это происходит. #include "stdafx.h"...
C++ В файле посчитать количество элементов, и найти их среднее значение http://www.cyberforum.ru/cpp-beginners/thread1180004.html
В файле данных 7,6,4,3,2,1,0,14,8,19,41,105 посчитать количество элементов, и найты их среднее значение. Добавлено через 15 часов 17 минут Cрочно надо.
C++ Двоичный поиск Помогите пожалуйста с двоичным поиском: нужно найти абитуриента с 287 баллами методом двоичного поиска.. #include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> FILE *file,*filet; struct bible { подробнее

Показать сообщение отдельно
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
19.05.2014, 01:36     Ошибка undefined reference to `QueueTp<Worker>::isfull() const'
Здравствуйте. Вот выводятся такие ошибочки.
Помогите, плз, разобраться.
Приведу некоторые файлы:
QueueTp.hpp:
Кликните здесь для просмотра всего текста
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
#ifndef QUEUETP_HPP
#define QUEUETP_HPP
 
template <typename TYPE>
class QueueTp
{
private:
// class scope definitions
    // Node is a nested structure definition local to this class
    struct Node { TYPE item; struct Node * next;};
    enum {Q_SIZE = 10};
// private class members
    Node * front;       // pointer to front of Queue
    Node * rear;        // pointer to rear of Queue
    int items;          // current number of items in Queue
    const int qsize;    // maximum number of items in Queue
    // preemptive definitions to prevent public copying
    QueueTp(const QueueTp & q) : qsize(0) { }
    QueueTp & operator=(const QueueTp & q) { return *this;}
public:
    QueueTp(int qs = Q_SIZE); // create queue with a qs limit
    ~QueueTp();
    bool isempty() const;
    bool isfull() const;
    int queuecount() const;
    bool enqueue(const TYPE &item); // add item to end
    bool dequeue(TYPE &item);       // remove item from front
};
 
#endif  /* QUEUETP_HPP */


QueueTp.cpp
Кликните здесь для просмотра всего текста
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
66
67
68
69
70
71
72
73
74
75
#include "QueueTp.hpp"
#include <cstdlib>         // (or stdlib.h) for rand()
 
// QueueTp  methods
template <typename TYPE>
QueueTp<TYPE>::QueueTp(int qs) : qsize(qs)
{
    front = rear = NULL;    // or nullptr
    items = 0;
}
 
template <typename TYPE>
QueueTp<TYPE>::~QueueTp()
{
    Node * temp;
    while (front != NULL)   // while queue is not yet empty
    {
        temp = front;       // save address of front item
        front = front->next;// reset pointer to next item
        delete temp;        // delete former front
    }
}
 
template <typename TYPE>
bool QueueTp<TYPE>::isempty() const
{
    return items == 0;
}
 
template <typename TYPE>
bool QueueTp<TYPE>::isfull() const
{
    return items == qsize;
}
 
template <typename TYPE>
int QueueTp<TYPE>::queuecount() const
{
    return items;
}
 
// Add item to queue
template <typename TYPE>
bool QueueTp<TYPE>::enqueue(const TYPE & item)
{
    if (isfull())
        return false;
    Node * add = new Node;  // create node
// on failure, new throws std::bad_alloc exception
    add->item = item;       // set node pointers
    add->next = NULL;       // or nullptr;
    items++;
    if (front == NULL)      // if queue is empty,
        front = add;        // place item at front
    else
        rear->next = add;   // else place at rear
    rear = add;             // have rear point to new node
    return true;
}
 
// Place front item into item variable and remove from queue
template <typename TYPE>
bool QueueTp<TYPE>::dequeue(TYPE & item)
{
    if (front == NULL)
        return false;
    item = front->item;     // set item to first item in queue
    items--;
    Node * temp = front;    // save location of first item
    front = front->next;    // reset front to next item
    delete temp;            // delete former first item
    if (items == 0)
        rear = NULL;
    return true;
}



main.cpp:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstring>
#include "QueueTp.hpp"
#include "Workers.hpp"
const int SIZE = 5;
int main()
{
    using std::cin;
    using std::cout;
    using std::endl;
    using std::strchr;
 
    
    QueueTp<Worker> line(SIZE); // line queue holds up to qs people
    Worker * lolas[SIZE];
 
    int ct;
    for (ct = 0; ct < SIZE; ct++) {
        char choice;
        cout << "Enter the employee category:\n"
            << "w: waiter  s: singer  "
            << "t: singing waiter  q: quit\n";
        cin >> choice;
        while (strchr("wstq", choice) == NULL) {
            cout << "Please enter a w, s, t, or q: ";
            cin >> choice;
        }
        if (choice == 'q')
            break;
        switch (choice) {
        case 'w': lolas[ct] = new Waiter;
            break;
        case 's': lolas[ct] = new Singer;
            break;
        case 't': lolas[ct] = new SingingWaiter;
            break;
        }
        cin.get();
        lolas[ct]->Set();
    }
 
    cout << "\nHere is your staff:\n";
    int i;
    for (i = 0; i < ct; i++) {
        cout << endl;
        lolas[i]->Show();
    }
    
    if (line.isempty())
    {
        line.enqueue(*lolas[0]);
        line.enqueue(*lolas[4]);
        if (!line.isfull())
            cout << "Line isn't full\n";
    }
    
//===
    
    for (i = 0; i < ct; i++)
        delete lolas[i];
    return 0;
}


Собс-но, ошибки:
main.cpp: (.text+0x18): undefined reference to `QueueTp<Worker>::QueueTp(int)'
main.cpp: (.text+0x212): undefined reference to `QueueTp<Worker>::isempty() const'
main.cpp: (.text+0x229): undefined reference to `QueueTp<Worker>::enqueue(Worker const&)'
main.cpp: (.text+0x23c): undefined reference to `QueueTp<Worker>::enqueue(Worker const&)'
main.cpp: (.text+0x248): undefined reference to `QueueTp<Worker>::isfull() const'
main.cpp: (.text+0x2b7): undefined reference to `QueueTp<Worker>::~QueueTp()'
main.cpp: (.text+0x2ff): undefined reference to `QueueTp<Worker>::~QueueTp()'
collect2: error: ld returned 1 exit status


Спасибо.

Добавлено через 5 часов 35 минут
Вроде описаны все функции-члены в шаблоне. Что же не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru