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

Подключения заголовочного и исполняемого файла - C++

Восстановить пароль Регистрация
 
bytephone32
1 / 1 / 0
Регистрация: 08.08.2012
Сообщений: 21
24.09.2012, 20:24     Подключения заголовочного и исполняемого файла #1
Есть 3 файла:

Main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
#include "example.h"
 
int main() {
    example<int> *A = new example<int>(1,2);
    delete A;
    return 0;
}
example.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
#ifndef EXAMPLE_H_
#define EXAMPLE_H_
 
template <typename valType>
class example
{
    public:
        example(valType, valType);
        example(const valType*, int);
        valType& operator[](int);
        bool operator==(const example&) const;
        bool insert(const valType*, int);
        bool insert(valType);
        valType min() const { return _min; }
        valType max() const { return _max; }
        void min(valType);
        void max(valType);
        int count(valType value) const;
    private:
        int _size;
        valType* parray;
        valType _min;
        valType _max;
};
 
#endif /*EXAMPLE_H_*/
example.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "example.h"
 
#include <iostream>
using namespace std;
 
template <typename valType>
example<valType>::
example(valType min, valType max):
    _min(min), _max(max)
{
    parray = new valType[2];
    parray[0] = _min;
    parray[1] = _max;
    cout<<"example constructor"<<endl;
}
При компиляции выводит ошибку о отсутствии реализации выбранного конструктора, если же добавить
C++
1
2
#include "example.h"
#include "example.cpp"
то все работает без проблем, но все же сдесь описано иначе. В чем проблема?

Fedora 17, Eclipse 3.3.2, GCC C++ Compiler
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2012, 20:24     Подключения заголовочного и исполняемого файла
Посмотрите здесь:

C++ Связь заголовочного файла и файла с описанием класса.
C++ Создание заголовочного файла
C++ Использование заголовочного файла
Включние заголовочного файла name.h C++
создание заголовочного файла .h C++
Создание заголовочного файла C++
C++ Подключение заголовочного файла
C++ Подключение заголовочного файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ProNoooob
71 / 71 / 6
Регистрация: 14.10.2009
Сообщений: 121
24.09.2012, 20:35     Подключения заголовочного и исполняемого файла #2
У вас шаблонный класс. Значит реализовать все его методы вы должны так, чтобы они были видны компилятору. В вашем случае нужно удалить example.cpp и реализовать все в example.h
Есть конечно экспорт шаблонов, но его не поддерживают современные компиляторы.
Yandex
Объявления
24.09.2012, 20:35     Подключения заголовочного и исполняемого файла
Ответ Создать тему
Опции темы

Текущее время: 16:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru