使用继承c++在vector中插入一个模板对象
insert an template object in vector with inheritance c++
我用模板定义了类Deposito
,我想创建一个Depositos_Normais
的对象,但它给了我以下错误消息:
error: cannot convert Depositos_Normais<Depositos<int>*>* to
Depositos<Depositos>>* in assignment
Depositos
类:
template <class T>
class Depositos {
public:
Depositos(int id, int num_palets, int capac_max, int area_total);
}
template <class T>
Depositos<T>::Depositos(int id, int num_palets, int capac_max, int area_total) {...}
Depositos_normais类:
template <class T>
class Depositos_Normais : public Depositos<T> {
public:
Depositos_Normais(int id, int num_palets, int capac_max, int area_total):
}
template <class T>
Depositos_Normais<T>::Depositos_Normais(
int id, int num_palets, int capac_max, int area_total
):
Depositos<T>(id, num_palets, capac_max, area_total)
{
Main.cpp:
Armazem<Depositos<int>> arm (1,1,1,1);
Depositos <int>* d= new Depositos_Normais<int>(int,int,int,int)
vector<Depositos<T>*> dep;
dep.push_back(&d);
有人知道匮乏是错的吗??
EDIT::
template <class T>
void Armazem<T>::criarDepositoNormal(Depositos<T> &Dep) {
depos.push_back(Dep);
}
main.cpp
Depositos <int>* d= new Depositos_Normais<int>(int,int,int,int);
arm.criarDepositoNormal(d); <-Error no know conversion for argument 1 from 'Depositos<int>*' to 'Depositos<Depositos<int>>&'
这是错误的一行:
Depositos <T>* d= new Depositos_Normais<T>(int,int,int,int)
简单地阅读它,您就没有指定用于实例化/模板定义的类型。提供的代码太差,但必须用有效类型替换"T"。像
Depositos <float>* d= new Depositos_Normais<float>(int,int,int,int)
相关文章:
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 从多个源构造一个对象,包括一个对象向量
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- 检查哪个对象调用了另一个对象的对象方法
- C++ 如何在将新对象分配给另一个对象时创建新对象
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 包装一个对象并假装它是一个 int
- 为什么我可以在不重载 "=" 运算符的情况下将一个对象分配给另一个对象?
- 如何在qt中将信号和插槽与另一个对象连接 --解决了
- 如何使用函数将一个对象的输入复制到另一个对象中
- 选择一个元素而不是一个对象的数组的原因
- 为什么我可以使用 memcpy 将一个对象变量复制到另一个对象变量
- 如何将包含另一个对象向量的对象保存到文件中,并使用C++中的二进制文件从文件中读回?
- 我重载了 << 和 = 运算符。为什么当我将一个对象分配给另一个对象并尝试打印它时,我会被打印出来?
- 打印对象的映射,其中另一个对象作为键
- 如何通过另一个对象中的命令正确地从一个对象返回数据
- 为什么将两个对象分配给另一个对象后,两个对象不一样?
- 绘制一个对象,比较模具缓冲区的两个不同值