class Vec
{
double dim[];
public:
Vec(void);
~Vec(void);
virtual void Add(Vec vector) = 0;
};
我想用“继承自 Vec
的任何类”替换 Vec::Add()
中的 Vec
。
有办法吗?
最佳答案
将参数更改为对 const Vec 的引用:
virtual void Add(Vec const &vector) = 0;
从 Vec
派生的(公开的)类可以通过引用传递给基类。
此外,由于您显然计划使用 Vec
作为基类,您可能也希望将其 dtor 设为虚拟。否则,如果您试图通过指针或对基类的引用销毁派生类型的对象,您将得到未定义的行为。
关于C++:有没有办法指定一个从另一个继承的泛化类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950206/