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

标签 c++ inheritance

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/

相关文章:

c++ - 如何将 openCV 视频流式传输到 HTML 网页?

c++ - 非虚基类的虚派生类

java - 泛型类方法返回它自己的类型作为模板参数

c++ - 为什么插入用户定义的析构函数需要用户定义的复制构造函数

c++ - 如何从系统日期获取昨天的日期并附加到字符串?

c++ - 为什么递增/递减运算符破坏了递归功能

c++ - 为什么头文件在 Windows 中有效,但在 Mac 和 Linux 中无效? (strrev)

java - 如何在父类(super class)方法中使用子类参数?

c++ - 取消继承 std::basic_string

java - 从许多子类Java中确定子类