У меня есть класс шаблона,Передача объекта класса шаблона в конструктор другого класса
template< typename T >
class A
{
private:
T *array;
public:
A(int size)
{
//Initialises array with size
}
}
Теперь мне нужно иметь класс B, который принимает объект класса А в качестве аргумента конструктора и присваивает его B местными член ссылки. Как мне это сделать? Я пробовал, как,
class B
{
private:
template<class T>
A<T> *a;
public:
template<class T>
B(A<T>(int) ar){
//assign ar to a
}
}
Может ли кто-нибудь помочь мне решить эту проблему?
UPDATE На самом деле то, что я хочу добиться здесь есть, думаю, что класс А общий кольцевой буфер, который может быть инициализирован в одном кадре, как A<int> int_buffer(20);
и тот же int_buffer для использования в различных классах говорят B и C (Продюсер и Потребитель). Является ли это правильным способом достижения моей цели или любого лучшего подхода, который вы можете предложить.
У вас нет переменной-члена шаблона. Чтобы выполнить то, что вы хотите, вам понадобится форма [erasure type] (https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Type_Erasure). – StoryTeller
'' (int) 'in' B (A (int) ar) 'также является подозрительным. –
MSalters
Исправить. Шаблоны не являются объектами. –