一般的なデザインの質問があります。私はこのようなものを実装しようとしています:
------------
|Base Class|
------------
|
------------------
| |
----------- -----------
|SubClass1| |SubClass2|
----------- -----------
| |
-------------- --------------
|SubSubClass1| |SubSubClass2|
-------------- --------------
基本クラスは仮想関数を提供し、サブクラスは実装を提供し、サブサブクラスは実装に定数を提供します。
次のように「Curiously Recurring Template Pattern」を 2 回使用することを考えました。
// 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() を呼び出します。
コーシャのようなものですか、それともこのようなことを行うためのより良い方法はありますか?
よろしくお願いします。