C++:有没有办法指定从另一个继承的通用类?

NBc*_*ode 1 c++ inheritance

class Vec
{
    double dim[];
public:
    Vec(void);
    ~Vec(void);
    virtual void Add(Vec vector) = 0;

};
Run Code Online (Sandbox Code Playgroud)

我想用"任何继承的类" 替换Vecin .有没有办法做到这一点?Vec::Add()Vec

Jer*_*fin 5

将参数更改为const Vec的引用:

virtual void Add(Vec const &vector) = 0;
Run Code Online (Sandbox Code Playgroud)

派生自的类(公开)Vec可以通过引用传递给基类.

此外,由于您显然计划将其Vec用作基类,因此您可能也希望将其dtor设置为虚拟.否则,如果您尝试通过指针或对基数的引用来销毁派生类型的对象,您将获得未定义的行为.