#include<iostream>
using namespace std;
class A
{
public:
void method()const{cout<<"A"<<endl;}
};
class B
{
public:
void method()const{cout<<"B"<<endl;}
};
class Client
{
public:
template<typename Type>
Client(const Type&value){value.method();}
};
int main()
{
A a;
B b;
Client c1(a);
Client c2(b);
c1=c2;//Разные типы, говорите?
}