Как я могу использовать класс, прежде чем он объявлен в C ++? - PullRequest
2 голосов
/ 11 февраля 2012

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

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 &);
};

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

Ответы [ 2 ]

9 голосов
/ 11 февраля 2012

Использовать предварительную декларацию:

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 голосов
/ 11 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...