استفاده از الگوی MixIn and CRTP(Curiously Recurring Template Pattern) برای استفاده بهینه از کلاسهای template و up casting در زمان اجرا.
و اجرای رفرنس متد در کلاس پایه با استفاده از دستور using بدون استفاده از مجازی کردن متد کلاس پایه جایگزین مناسب برای متد های مجازی Reference Method
کاری که در زبان برنامه نویسی جاوا یک آرزو دست نیافتنی بوده و هست.!!
template<typename T> struct MixIn {
auto sum() {
return static_cast<T*>(this)->lhs +
static_cast<T*>(this)->rhs ;
}
};
struct Integer : MixIn<Integer> {
int lhs =0 ;
int rhs =0 ;
using MixIn<Integer>::sum; // method refernce
};
struct Double : MixIn<Double> {
double lhs =0.0 ;
double rhs =0.0 ;
using MixIn<Double>::sum; // method refernce
};
int main(){
Integer sInt ;
sInt.lhs = 10 ;
sInt.rhs = 20 ;
cout << "sum int is :" << (sInt.sum()) << endl ;
Double sDubl ;
sDubl.lhs = 10.8 ;
sDubl.rhs = 20.3 ;
cout << "sum double is :" << (sDubl.sum()) << endl ;
}
ادامه خواهد داشت ...
سوالی بود لطفا همین جا اطلاع دهید.!