Здравствуйте, pepsicoca, Вы писали забавный код.
P>Вопрос:
P>1. Можно ли такую задачу решить шаблоном или придется тупо руками писать все методы класса b?
Можно тупо добавить один метод возвращающий ссылку:
class a{
public:
virtual a& get_a(int i) { return *this; }
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 a& get_a(int i) { return (i>=10 || i < 0) ? *this : array1[i]; }
}
int main(int argc,char* argv[]){
b bb;
cout<<"\n"<<bb.get_a(1).fun3(1,2,3,4);
}