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

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

26.11.2013, 17:43. Просмотров 406. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2013, 17:43
Ответы с готовыми решениями:

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

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

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

Шаблонные функции
Такой код работает. #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstring&gt; using namespace...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
5
408 / 246 / 117
Регистрация: 26.12.2012
Сообщений: 786
26.11.2013, 18:01 2
Возможно так
C++
1
2
template<typename It, typename It1> 
 void VisitAll(It s, It1 e);
если функция с двумя параметрами.
0
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
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
:)
Эксперт С++
4765 / 3259 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.11.2013, 18:06 5
Реализация шаблонной функции должна быть в хедере.
0
9 / 5 / 0
Регистрация: 19.01.2013
Сообщений: 74
26.11.2013, 18:10  [ТС] 6
Цитата Сообщение от Tulosba Посмотреть сообщение
Реализация шаблонной функции должна быть в хедере.
спасибо, сейчас попробую, я даже не подумал об этом как то.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2013, 18:10

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

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

Шаблонные функции
Здравствуйте! Помогите сделать в данном коде 2 задания: 1)Сделать тип элемента заданной структуры...

Шаблонные функции
Любимой нужно, это свято... Поэтому прошу помощи... Перегрузить операторы &gt;, &lt;, == для класса...

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


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

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

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