在c++中使用虚函数与向量
Using virtual functions in C++ with vectors
我有一个叫做Matrix的基类,它有一个函数转置。我也有一个派生类Matrix2这是从矩阵
继承公开class Matrix
{
public:
Matrix();
...
Matrix Transpose(void);
...
};
class Matrix2 : public Matrix
{
public:
Matrix2();
...
};
在我的主代码中,我尝试了这个。
vector <Matrix2> myMatrix2;
vector <Matrix> *b = &myMatrix2;
执行此操作
b->transpose();
但是我得到以下错误
错误C2440: '初始化':无法从'std::vector<_Ty> *'转换为'std::vector<_Ty> *'
怎么了?
在向量中访问矩阵类的转置函数的方法是什么?
我得到以下错误:
error C2039: 'transpose' : is not a member of 'Matrix2'
谢谢
您尝试转换没有(用户定义的)转换的不同类型。
这是不可能的。
vector <Matrix2>
不能分配给vector <Matrix>&
,它们没有共同的碱基。这不是Java,也没有vector<?>
如果您在派生类上实例化模板,则模板实例化不会从与基类实例化的相同模板中自动派生。
因为这些模板实例化不是通过继承来关联的,所以使用一个模板实例就好像它是从另一个模板派生出来的一样是不可能的。使用reinterpret_cast
强制编译器会导致未定义行为。
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用向量的template_back函数
- 如何通过派生类函数更改基类中的向量
- 变量没有改变?通过向量的函数调用
- 一对向量构造函数:初始值设定项列表与显式构造
- 在c++中使用向量时,如何调用构造函数和析构函数
- std::sort()函数无法对向量的一部分进行排序
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- C++中函数的向量返回类型引发错误
- 添加存储在向量中的大整数的函数出现问题
- 如何在 c++ 中定义接受不同参数类型的函数向量?
- 具有 lambda 函数的函数向量
- 你能用参数制作函数向量吗?
- 在C++中使用成员函数向量时,有没有办法实现协变返回类型
- 在编写 lambda 函数向量时出现隔离错误
- 如何在 boost.process 间共享内存中使用复杂结构"push_back"函数向量
- 是否将std矢量重新分配到默认的构造函数向量是擦除的好方法
- 运行提升for_each中的成员函数向量
- 创建和回推函数向量
- C++,指向函数向量的指针的STL映射