我试图通过重载'='运算符为两个类创建一些转换函数。这是一些代码:
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 :(得分: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 &);
};
答案 1 :(得分:0)
将类分隔为单独的文件,并使每个文件在其各自的头文件中引用另一个文件。