доступ к полям с помощью шаблона-2
От: pepsicoca  
Дата: 12.02.13 12:03
Оценка:
Добрый день.

Есть MSVC2010 и есть код:


class a{
public:

virtual int fun1(int i,int a){return a+1;}
virtual float fun2(int i,int a,float b){return a+b+1;}
virtual double fun3(int i,int a,float b,double c){return a+b+c+1;}

};

class b: public a{

a array1[10];

public:

virtual int fun1(int i,int a){
if(i>=10) return a::fun1(i,a); else return array1[i].fun1(i,a); 
}

virtual float fun2(int i,int a,float b){
if(i>=10) return a::fun2(i,a,b); else return array1[i].fun2(i,a,b); 
}

virtual double fun3(int i,int a,float b,double c){
if(i>=10) return a::fun3(i,a,b,c); else return array1[i].fun3(i,a,b,c); 
}

};

int main(int argc,char* argv[]){

b bb;

cout<<"\n"<<bb.fun3(1,2,3,4);

}


Можно легко заметить, что методы класса b построены по одному алгоритму.
В связи с этим хотелось бы написать шаблон, в который передавать соответствующий метод класса a.
Однако из-за того, что прототипы методов разные, то шаблон написать не получается.

Вопрос:
1. Можно ли такую задачу решить шаблоном или придется тупо руками писать все методы класса b?

Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.