О всевышний ! Ответь мне на вопрос !
class Counter
{
public:
int count ;
Counter (int a ): count (a){}
Counter (Counter &x)
{
count = x.count ;
}
Counter operator ++()
{
Counter a(1);
return a;//Counter (1);
}
operator float ()const
{
return 25.0F;
}
};
такой класс нормально компиллится (VS 8)
class Counter
{
public:
int count ;
Counter (int a ): count (a){}
Counter (Counter &x)
{
count = x.count ;
}
Counter operator ++()
{
return Counter (1); //WARNING : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
}
operator float ()const
{
return 25.0F;
}
};
a вот этот при компиляции выдаётся варнинг
Это как-то связанно с operator float ()const и конструктором копирования : но не пойму как