我有一般设计问题。我正在尝试实现这样的事情:
------------
|Base Class|
------------
|
------------------
| |
----------- -----------
|SubClass1| |SubClass2|
----------- -----------
| |
-------------- --------------
|SubSubClass1| |SubSubClass2|
-------------- --------------
其中基类提供虚函数,子类提供实现,子子类为实现提供常量。
我曾想过两次使用“奇怪的重复模板模式”:
// header baseclass.h
template <typename subclass>
class baseclass {
private:
public:
virtual double GetQuantity1(double given1, double given2) = 0;
virtual double GetQuantity2(double given1) = 0;
}
// header subclass1.h
template <typename n>
class subclass1:public baseclass<subclass>{
private:
private1(double, double);
public:
double GetQuantity1(double given1, double given2);
double GetQuantity2(double given1);
}
// header subsubclass1.h
class subsubclass1:public subclass1<subsubclass1>{
private:
public:
double constant1;
double constant2;
}
然后我会在使用代码时调用 Subsubclass::GetQuantity1() 。
像犹太洁食一样的东西还是有更好的方法来做这样的事情?
提前非常感谢。