Почему вы хотите получить и передать базовый указатель одновременно? Выберите любой, ничто не мешает вам иметь оба. Используйте наследство, чтобы сделать работу за вас:
class Base
{
public:
Base(int x) : someBaseMemer(x) {}
protected: // at least, otherwise, derived can't access this member
int someBaseMemer;
};
template<class T>
class Derived : public T
{
int someNonBaseMemer;
public:
Derived(int x, int y) : someNonBaseMemer(y), T(x) {}
};
Derived<Base> d(42, 32); // usage
Хотя это не лучший выбор, как дизайн.