【发布时间】:2023-04-07 03:41:01
【问题描述】:
我想定义一个带有结构变量向量的抽象基类,以及一个由派生类实现的虚函数:
class TestFather {
private:
struct myStruct
{
// struct definition
};
vector<myStruct> myStructVect;
public:
virtual vector<myStruct> get_myStructVect() = 0;
};
但是当我写派生类的时候:
#include "TestFather.h"
class TestSon : public TestFather{
private:
struct myStruct
{
// struct definition
};
vector<myStruct> myStructVect;
public:
vector<myStruct> get_myStructVect();
};
我得到这个错误:
invalid covariant return type for ‘virtual std::vector<ProvaSon::myStruct, std::allocator<ProvaSon::myStruct> > ProvaSon::get_myStructVect()’
我是在做错事,还是在尝试做一些语言禁止的事情?
【问题讨论】:
-
为什么要重新定义两次 myStruct?
-
好吧,那是“人为错误”:)
标签: c++ templates implementation virtual-functions