operator float () ... вопрос
От: tealex  
Дата: 05.02.08 13:14
Оценка:
О всевышний ! Ответь мне на вопрос !
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 и конструктором копирования : но не пойму как
хана
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.