2010-07-20 3 views
0
class ADot : 
    public Shape 
{ 
private: 
    Point me_; 
    operator D2D1_POINT_2F() const;//HERE I HAVE CONVERSION OPERATOR BUT IT DOES NOT WORK 
public: 
    ADot(signed, signed); 
    ~ADot(void); 
    void draw()const; 
    Point center() const; 
    Point north() const; 
    Point south() const; 
    Point east() const; 
    Point west() const; 
    Point nw() const; 
    Point ne() const; 
    Point sw() const; 
    Point se() const; 
}; 

ошибка: Ошибка 7 Ошибка C2664: 'D2D1 :: Ellipse': не удается преобразовать параметр 1 из 'сопзЬ точки' до 'сопзЬ D2D1_POINT_2F &'не удается преобразовать из сопзЬ Поинт константные D2D1_POINT_2F

I Я получаю эту ошибку, но я не знаю, как написать оператор, который преобразует мой объект const в const D2D1_POINT_2F.

спасибо.

+2

** (1) ** Почему вы ожидаете его работы, учитывая, что оператор преобразования является 'private:'? ** (2) ** Как преобразовать точку в D2D1_POINT_2F, связанную с преобразованием ADot в D2D1_POINT_2F? – kennytm

+0

@ KennyTM +1 конечно. Я издеваюсь над ежитом! –

ответ

1

Оператор объявляется ЧАСТНЫМ. Сделать это общественное

Вы также пытаются преобразовать точку в D2D1_POINT_2F, но оператор объявлен в ADot классе

1

Вы должны реализовать оператор преобразования. Все, что вы заявили, что такое преобразование существует, - вы не определили, как работает преобразование. Он также должен быть общедоступным.