Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Pokemon_93
9 / 5 / 0
Регистрация: 19.01.2013
Сообщений: 74
1

шаблонные функции

26.11.2013, 17:43. Просмотров 278. Ответов 5
Метки нет (Все метки)

доброго времени суток уважаемые форумчане, помогите пожалуйста разобраться с шаблонными функциями, читал про них много но так и не понял почему у меня ошибка. дело обстоит так:
имеется класс визитор, в нем объявляю шаблонную функцию
visitor.h
C++
1
2
template<typename It> 
    void VisitAll(It s, It e);
visitor.cpp
C++
1
2
3
4
5
6
7
8
9
void CGeometryObjectToXMLSerializerVisitor::VisitAll(It s, It e)
{
    m_strm << "<geometryObjects>"<< std::endl;
    for (auto i = s; i!= e; i++)
    {
    ... 
    }
    m_strm << "</geometryObjects>"<<std::endl;
}
но при попытке обратиться к этой функции допустим отсюда

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void CGeometryObjectSerializersTestSuite::TestCPoint2DToXMLSerializer()
{
    std::string testStr = GetReadString("SerializerTestFile/test_point2d.xml");
    std::ofstream strm;
    strm.open("SerializerTestFile/point2d.xml");
    std::vector <IGeometryObject*> objects;
    
    CGeometryObjectToXMLSerializerVisitor xmlSerializer(strm);
    objects.push_back(new CPoint2D);
        xmlSerializer.VisitAll(objects.begin(), objects.end());
 
    std::string outStr = GetReadString("SerializerTestFile/point2d.xml");
    TS_ASSERT_EQUALS(outStr, testStr);
}
вылетает error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall CGeometryObjectToXMLSerializerVisitor::VisitAll

заранее благодарен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 17:43
Ответы с готовыми решениями:

Шаблонные функции
Читал у Праты про шаблонные функции, и везде они описаны наподобие template...

Шаблонные функции
Помогите, пожалуйста, реализовать шаблонную функцию определения, есть ли число...

Шаблонные функции в C++
Каждый раз когда вижу код, который должен быть простым и понятным, я понимаю...

Шаблонные функции
Доброго времени суток. Есть шаблонная функция(двоичный сумматор прямого кода):...

Шаблонные функции
Чет не получается написать шаблонную функцию. func.h template &lt;class T&gt;...

5
Genn55
378 / 225 / 108
Регистрация: 26.12.2012
Сообщений: 744
26.11.2013, 18:01 2
Возможно так
C++
1
2
template<typename It, typename It1> 
 void VisitAll(It s, It1 e);
если функция с двумя параметрами.
0
Pokemon_93
9 / 5 / 0
Регистрация: 19.01.2013
Сообщений: 74
26.11.2013, 18:03  [ТС] 3
Цитата Сообщение от Genn55 Посмотреть сообщение
Возможно так
C++
1
2
template<typename It, typename It1> 
 void VisitAll(It s, It1 e);
если функция с двумя параметрами.
к сожалению нет, сейчас попробовал, не помогло.=(
0
ssXXss
266 / 188 / 33
Регистрация: 15.01.2011
Сообщений: 681
26.11.2013, 18:04 4
небольшой примерчик :
Кликните здесь для просмотра всего текста

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
//*.h
class MyClass
{
    int x;
    double d;
public:
    MyClass()
    {
        x = 100;
        d = 100.55;
    }
    ~MyClass(){}
 
    template<typename T>
    T func(T t,T t2)
    {
        return t + t2;
    }
    int sum(int x2)
    {
        return func<int>(x2 , x);
    }
    double sum(double d1)
    {
        return func<double>(d1,d);
    }
};
//main.cpp
//#include...
void main()
{
 MyClass mc;
 std::cout<<mc.sum(123)<<endl;;
 std::cout<<mc.sum(123.123)<<endl;
 std::cout<<mc.func<double>(0.99,0.33)<<endl;
 }
//вывод :
//223 
//223.673 
//1.32
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.11.2013, 18:06 5
Реализация шаблонной функции должна быть в хедере.
0
Pokemon_93
9 / 5 / 0
Регистрация: 19.01.2013
Сообщений: 74
26.11.2013, 18:10  [ТС] 6
Цитата Сообщение от Tulosba Посмотреть сообщение
Реализация шаблонной функции должна быть в хедере.
спасибо, сейчас попробую, я даже не подумал об этом как то.
0
26.11.2013, 18:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 18:10

Шаблонные функции
1) Написать шаблонную функцию для нахождения минимального из трех передаваемых...

Шаблонные функции
С помощью http://ru.wikipedia.org/wiki/Шаблоны_C%2B%2B пытался написать...

Шаблонные функции
Помогите, пожалуйста, реализовать шаблонную функцию, которая переставляет...


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

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

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