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

Шаблонная функция в простом классе и ошибка "Ссылка на неразрешенный внешний символ" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка: "does not name a type" http://www.cyberforum.ru/cpp-beginners/thread1245810.html
*.h class WT_API VkService : public OAuthService { public: VkService(const AuthService& baseAuthService); }; *.cpp VkService::VkService(const AuthService& baseAuth):...
C++ Написать функцию, которая переводит число в другую систему счисления Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно переводится (системы счисления от 2 до 36). Например, при переводе... http://www.cyberforum.ru/cpp-beginners/thread1245809.html
C++ В чем разница между виртуальной и чисто виртуальной функцией?
в чем разница между виртуальной и чисто виртуальной функцией? virtual void print(){..} virtual void ex(..)=0;
Функции с типом но без имени параметра C++
Добрый день. Встретил следующую функцию: void f(int) { //код } //почему не так ? void f1(int i) { //код }
C++ Долго считывается информация с файла http://www.cyberforum.ru/cpp-beginners/thread1245772.html
У меня такая проблема, программа долго считывает данные с файла, компилю в VS2013. Вот кусок кода: ifstream in("input.txt"); ofstream out("output.txt"); int a; int n = -1; while...
C++ Написать пару функций для сохранения и восстановления дерева в/из файл (-а) Доброго времени суток. Создаю шаблон двоичного дерева на с++. Хочу написать пару функций для сохранения и восстановления дерева в/из файл(-а). Но проблема состоит в том что в качестве данных... подробнее

Показать сообщение отдельно
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
22.08.2014, 15:25  [ТС]
Думал что для шаблонных функций тоже нужно определять прототип и делать реализацию отдельно...

С шаблонными функциями разобрался.

Решил сделать шаблонный класс и напоролся на ошибки...
Добавлено через 14 минут

A.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
#ifndef _A
#define _A
 
#include <iostream>
using namespace std;
 
class A
{
private:
    int privA;
protected:
    int protA;
public:
    int pubA;
    A();
    A(int, int, int);
    virtual void show();
    template<class T>
    T func(T val)
    {
        return val;
    }
};
 
#endif
A.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "A.h"
 
A::A() : privA(0), protA(0), pubA(0) 
{
    cout << "Конструктор A по умолчанию\n";
}
 
A::A(int priv, int prot, int pub) : privA(priv), protA(prot), pubA(pub) 
{
    cout << "Конструктор A с параметрами\n";
}
 
void A::show()
{
    cout << "PrivA: " << this->privA << " ProtA: " << this->protA << " PubA: " << this->pubA << endl;
}
B.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef _B
#define _B
 
#include "A.h"
 
template<class T>
class B : protected A
{
    T vr;
public:
    B();
    B(int, int, int, T);
    void show();
};
 
#endif
B.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "B.h"
 
template<class T>
B<T>::B() : A()
{
    cout << "Конструктор B по умолчанию\n";
}
 
template<class T>
B<T>::B(int aPriv, int aProt, int aPub, T v) : vr(v), A(aPriv, aProt, aPub)
{
    cout << "Конструктор B с параметрами\n";
}
 
template<class T>
void B<T>::show()
{
    cout << this->protA << " " << this->pubA << endl;
    cout << vr << endl;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "A.h"
#include "B.h"
 
int main(int argc, char** argv)
{
    setlocale(LC_ALL, "rus");
    A a;
    cout << a.func(11.25) << endl;
    B<int> b(1,2,3,4);
    b.show();
    return 0;
}
Ошибки:
1 - Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall B<int>::B<int>(int,int,int,int)" (??0?$B@H@@QAE@HHHH@Z) в функции _main D:\Projects\ABC\ABC\main.obj ABC
2 - Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ "public: virtual void __thiscall B<int>::show(void)" (?show@?$B@H@@UAEXXZ) в функции _main D:\Projects\ABC\ABC\main.obj ABC
3 - Ошибка 3 error LNK1120: неразрешенных внешних элементов: 2 D:\Projects\ABC\Debug\ABC.exe 1 1 ABC
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru