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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая считает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв. http://www.cyberforum.ru/cpp-beginners/thread208419.html
нужно чтобы в файл записывалось пользователем русские и английские слова, программа програма считывала только анг язык, и выводила только те слова (агл) которые начинаются на гласную букву)
C++ 1 программа по структуре и 2 по символьным строкам 1. Если первый аргумент командной строки - опция -а, то распечатать остальные аргументы без их первых символов, а если первой идет опция -r, то распечатать аргументы через один в обратном порядке. (Если аргументов нет - выдать сообщение) 2. Распечатать те слова, в которых либо буквы упорядочены по алфавиту, либо каждая буква входит в слово не менее двух раз (т.е. слова типа BEER, АBBА). 3.... http://www.cyberforum.ru/cpp-beginners/thread208416.html
C++ Программирование с использованием классов.
Помогите решить. Создать класс квадрат, член класса - длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – периметр, площадь, диагональ. Создать производный класс – куб, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу с классом: дано N1 квадратов и N2...
Решение задач линейной алгебры 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 x1+13,2 x2−6,3 x3−8,7x 4=14,3
C++ Определить содержит ли последовательность хотя бы два рядом стоящих положительных числа http://www.cyberforum.ru/cpp-beginners/thread208405.html
Помогите пожалуйста решить. Буду очень признательна. Вводится последовательность целых чисел, 0 – конец последователь- ности. Определить содержит ли последовательность хотя бы два рядом стоящих положительных числа. 1. Дублирование тем запрещено правилами форума (п. 3.4). 2. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
C++ Обработка одномерных массивов. Удалить из массива последнюю группу элементов, представляющих собой знакочередующийся ряд. Найти максимальный и минимальный элементы массива до и после удаления. Помогите пожалуйста решить, очень надо! подробнее

Показать сообщение отдельно
Jino_
2 / 2 / 1
Регистрация: 26.06.2010
Сообщений: 37
11.12.2010, 15:14     шаблоны и связь между файлами в проекте
Собственно, проблема в следующем:
если убрать комментарии в файле 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;
    }
 
 
}
 
*/
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru