#include <iostream>
using namespace std;

template<class D>
class Base {
public:
    D a;
    
    void doWork(D b) {
        a += b;
    }
};

class DerA : public Base<int> {
    // Make "a" an int
};

class DerB : public Base<float> {
    
};
    

int main() {
   
    DerA obj1;
    DerB obj2;
    
    obj1.a = 22;
    obj2.a = 2.2f;
    
    obj1.doWork(11);
    obj2.doWork(1.1f);
    
    cout << obj1.a << endl;
    cout << obj2.a;

    return 0;
}