2012-02-11 2 views
2

Я пытаюсь создать некоторые функции преобразования для двух классов, перегружая оператор '='. Вот какой-то код:Как я могу использовать класс до его объявления в C++?

class Vertex { 
public: 
    int X, Y; 
     // ....... 
    Vertex& operator= (const VertexF &); // ERROR, VertexF is not declared 
}; 

class VertexF { 
public: 
    float X, Y; 
     // ...... 
    VertexF& operator= (const Vertex &); 
}; 

Как я могу сделать эту работу?

ответ

9

Используйте упреждающее объявление:

class VertexF; // forward declaration of VertexF 

class Vertex { 
public: 
    int X, Y; 
     // ....... 
    Vertex& operator= (const VertexF &); // ERROR, VertexF is not declared 
}; 

class VertexF { 
public: 
    float X, Y; 
     // ...... 
    VertexF& operator= (const Vertex &); 
}; 
+0

Ничего себе, я не думаю, что я мог бы сделать это ... Я думал, что он работал только для функций. Спасибо, это исправлено. – Tibi

0

Разделите классы на отдельные файлы и укажите их ссылку в соответствующих заголовочных файлах.

Смежные вопросы