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

шаблоны и связь между файлами в проекте - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая считает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв. http://www.cyberforum.ru/cpp-beginners/thread208419.html
нужно чтобы в файл записывалось пользователем русские и английские слова, программа програма считывала только анг язык, и выводила только те слова (агл) которые начинаются на гласную букву)
C++ 1 программа по структуре и 2 по символьным строкам 1. Если первый аргумент командной строки - опция -а, то распечатать остальные аргументы без их первых символов, а если первой идет опция -r, то распечатать аргументы через один в обратном порядке.... http://www.cyberforum.ru/cpp-beginners/thread208416.html
C++ Программирование с использованием классов.
Помогите решить. Создать класс квадрат, член класса - длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – периметр, площадь, диагональ. Создать производный класс...
Решение задач линейной алгебры C++
Помогите пожалуйста решить. Решив систему уравнений методом Гаусса, вычислить H=E-XXT. 8,2 x1−3,2 x2+14,2 x3+14,8 x4=−8,4 5,6 x1−12x2+15 x3−6,4 x4=4,5 5,7 x1+3,6 x2−12,4 x3−2,3 x4=3,3 6,8...
C++ Определить содержит ли последовательность хотя бы два рядом стоящих положительных числа http://www.cyberforum.ru/cpp-beginners/thread208405.html
Помогите пожалуйста решить. Буду очень признательна. Вводится последовательность целых чисел, 0 – конец последователь- ности. Определить содержит ли последовательность хотя бы два рядом стоящих...
C++ Обработка одномерных массивов. Удалить из массива последнюю группу элементов, представляющих собой знакочередующийся ряд. Найти максимальный и минимальный элементы массива до и после удаления. Помогите пожалуйста решить,... подробнее

Показать сообщение отдельно
Jino_
2 / 2 / 1
Регистрация: 26.06.2010
Сообщений: 37

шаблоны и связь между файлами в проекте - C++

11.12.2010, 15:14. Просмотров 630. Ответов 0
Метки (Все метки)

Собственно, проблема в следующем:
если убрать комментарии в файле list.h, то все нормально компилируется.
если убрать комментарии в файле list.cpp, то в point.cpp выводится ошибка "undefined reference"

в принципе, проблема решаема, например, подключением в point.h вместо list.h list.cpp, но стало интересно почему появляется эта ошибка?

point.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "list.h"
 
class Point
{
    private:
    int x;
    int y;
 
    public:
    Point(int _x, int _y, List<Point> l);
 
 
};
point.cpp

C++
1
2
3
4
5
6
7
8
9
#include "point.h"
 
Point::Point(int _x, int _y, List<Point> l)
{
    x = _x;
    y = _y;
 
    l.add(this); //Error
}
list.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 <stddef.h>
 
template <class Item> class List
{
    struct ListItem
    {
        Item* i;
        ListItem* next;
        ListItem(Item* _i){i = _i; next = NULL;}
    };
 
    private:
    ListItem* first;
    ListItem* end;
 
    public:
    List(){first = NULL; end = NULL;}
    void add(Item* _i);
};
 
/*template <class Item>void List<Item>::add(Item* _i)
{
    ListItem* t = new ListItem(_i);
 
 
    if(!first)
    {
        end->next = t;
        end = t;
    } else
    {
        first = t;
        end = t;
    }
 
 
}
 
*/
list.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "list.h"
 
/*template <class Item>void List<Item>::add(Item* _i)
{
    ListItem* t = new ListItem(_i);
 
 
    if(!first)
    {
        end->next = t;
        end = t;
    } else
    {
        first = t;
        end = t;
    }
 
 
}
 
*/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru