多くの子クラスを持つ基本クラスがあります。すべての継承クラスで機能するように、基本クラスでテンプレート オペレーター オーバー ローダーを実装するにはどうすればよいですか? + 演算子を使用して作成しようとしましたが、パラメーターが多すぎると不平を言いました。これがこれを行う正しい方法であるかどうかは実際にはわかりません(私はOOPを使い始めたばかりです)ので、より良い方法を考えることができればそれも素晴らしいでしょう.
各メトリック空間がクラスであるライブラリを作成しています。あらゆる空間が継承する基本クラス「操作」を作りたい。
私のテンプレート基本クラス:
#ifndef __libSpace__Operations__
#define __libSpace__Operations__
template< typename T >
class Operations{
public:
friend T operator+( const T& sp, const T& nsp ){
return T(sp.dimension + nsp.dimension);
};
};
#endif
子:
#ifndef __libSpace__EuclidSP__
#define __libSpace__EuclidSP__
#include "Operations.h"
class EuclidSP: public Operations<EuclidSP>{
public:
EuclidSP(int n = 0, ...);
~EuclidSP();
double* vector();
private:
int dimension;
double *vec = new double(dimension);
};
#endif
主要:
#include <iostream>
#include "EuclidSP.h"
int main(int argc, const char * argv[])
{
EuclidSP ob1(3,4.0,5.0,6.0);
EuclidSP ob2(3,2.0,5.0,3.0);
EuclidSP obj3();
obj3 = ob2+ob1;
return 0;
}