C++相互依赖的类的继承
C++ inheritance for classes that depend on one another
我正在尝试用C++设计一个抽象类。它被称为抽象曲线,它有AbstractPoint由x和y坐标组成,它们是AbstractFieldElements。例如,我想从中继承一个具有PrimePoints和PrimeFieldElements。如果我做这样的事情:
class AbstractPoint {
private:
AbstractFieldElement* x_;
AbstractFieldElement* y_;
};
我将如何告诉编译器在创建时使x_和y_成为PrimeFieldElementsPrimePoint类?
另外,有没有更好的方法来做到这一点,我错过了?
假设类之间的唯一区别是这些数据类型,我会做这样的事情:
template <typename ElementType>
class Point {
private:
ElementType* x_;
ElementType* y_;
};
using AbstractPoint = Point<AbstractFieldElement>;
using PrimePoint = Point<PrimeFieldElement>;
如果我们把它提升到一个新的水平,我们可以继续前进
template <typename ElementType>
class Curve {
private:
using Point = Point<ElementType>;
std::vector<Point> points_;
};
using AbstractCurve = Curve<AbstractFieldElement>;
using PrimeFieldCure = Curve<PrimeFieldElement>;
使用继承是合理的,因为您建议为各种曲线/点类型提供常见行为,但如果不同类型的类型将使用不同的内部数据类型,那么模板就是要走的路。
相关文章:
- 初始化依赖于子类的继承类的常量类成员
- 循环依赖,在继承类的情况下使用覆盖方法
- 当依赖关系和依赖关系都是多态时,在哪个继承级别存储依赖关系指针?
- 正在从继承中解析循环依赖项
- 继承依赖类型定义而不使用结构
- 相互依赖的类和继承
- C++ 上的循环依赖和继承编译错误
- 模板类型依赖和继承
- 依赖注入/继承设计模式的构造函数参数太多
- 如何在Visual Studio中将项目依赖项/引用从一个项目继承到依赖项目
- C++中对继承的循环依赖
- 依赖类的C++继承和实例化
- 在多继承编译器的情况下访问成员变量是否依赖?如何正确地做
- 如何在C++中管理并行的依赖继承
- C++相互依赖的类的继承
- C++循环依赖和继承
- 处理对继承的循环依赖
- 模板继承:没有依赖模板形参的实参
- 具有继承模板类的循环依赖关系
- 如何使继承依赖