powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с шаблонами
6 сообщений из 6, страница 1 из 1
Проблема с шаблонами
    #39177105
micoloss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Столкнулся с проблемой при использовании шаблона. Нужно организовать некое подобие Java'вского типа Object для хранение различных типов в одном векторе.

Код: plaintext
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.
#pragma once
#include <vector>
#include <memory>
#include "Object.h"

using namespace std;

class ObjectList
{
public:
	ObjectList(){}
	~ObjectList(){}
	template<typename T> void Add(T object);
	template<typename T> T Get(int index);
	int Size() { return objectList.size(); }
private:
	vector<shared_ptr<_Object>> objectList;
};

template<typename T> void ObjectList::Add(T object) {
	objectList.push_back(make_shared<Object<T>>(object));
}

template<typename T> T Get(int index){
	if (index < (Size() - 1))
	{
		return;
	}
	shared_ptr<_Object> content = objectList[index];
	shared_ptr<Object<T>> temp = static_pointer_cast<Object<T>>(content);
	return temp->GetValue();
}



вызов

Код: plaintext
1.
2.
3.
ObjectList objl;
objl.Add<int>(123);
auto a = objl.Get<int>(0);



получаю ошибку:

Код: plaintext
1.
error LNK2019: unresolved external symbol "public: int __thiscall ObjectList::Get<int>(int)" (??$Get@H@ObjectList@@QAEHH@Z) referenced in function "public:.....



Вроде при такой ошибке, при использовании шаблонов - все должно быть описано в одном хедере - что у меня и так написано. Чую что ошибка в какой-то мелочи)). В чем может быть причина? Спасибо!
...
Рейтинг: 0 / 0
Проблема с шаблонами
    #39177109
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
micolossНужно организовать некое подобие Java'вского типа Object для хранение
различных типов в одном векторе.
Для этого нужен не шаблон, а union.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема с шаблонами
    #39177111
micoloss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне думалось, что через шаблон это будет проще сделать, хотя могу ошибаться.
...
Рейтинг: 0 / 0
Проблема с шаблонами
    #39177128
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
micolossЧую что ошибка в какой-то мелочи))найди 7 отличий:
Код: plaintext
1.
2.
template<typename T> T ObjectList::Get(int index) {...}
template<typename T> T Get(int index) {...}
...
Рейтинг: 0 / 0
Проблема с шаблонами
    #39177141
micoloss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Баааалин.... Спасибо тебе мил человек!!! Машинально написал, и сижу недогоняю. Всех с праздником!!!!
...
Рейтинг: 0 / 0
Проблема с шаблонами
    #39179002
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с шаблонами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]