C++ (Qt)class ISomeClass{ ... template <class T> virtual void doSomething(T value) = 0;}
C++ (Qt)ISomeClass * makeSomeObject();
C++ (Qt)QWidget * widget = new QWidget();ISomeClass * some_object = makeSomeObject();some_object->doSomething(widget);
virtual void doSomething(int value);virtual void doSomething(double value);
some_object->doSomething(widget);
virtual void doSomething(QWidget * value);
struct sample{ static int val; //где то в sample.cpp: int sample::val = 33;};
template<class T>struct sample{ static int val; };int sample<T>::val = 33; //<--- в какой именно ед. трансляции он будет жить?