C++ c+中类之间的交叉转换+;
我有一节课C++ c+中类之间的交叉转换+;,c++,C++,我有一节课 class Cartesian { float x,y,z; }; 还有一节课 class Spherical { float rho, phi, r; }; 我如何在他们之间转换? 我曾尝试在类声明中添加球形笛卡尔::ToSpherecal和笛卡尔球形::toCartesian,但无论我将它们放在哪个顺序,第一个都会抱怨另一个未定义。我已经标记了VS和Ubuntu,因为我希望它能同时工作。做转发声明 class Spherical; class
class Cartesian
{
float x,y,z;
};
还有一节课
class Spherical
{
float rho, phi, r;
};
我如何在他们之间转换?
我曾尝试在类声明中添加
球形笛卡尔::ToSpherecal
和笛卡尔球形::toCartesian
,但无论我将它们放在哪个顺序,第一个都会抱怨另一个未定义。我已经标记了VS和Ubuntu,因为我希望它能同时工作。做转发声明
class Spherical;
class Cartesian
{
float x,y,z;
Spherical toSpherical();
};
class Spherical
{
float rho, phi, r;
Cartesian toCartesian();
};
相关/重复:这些文件是否在同一个文件中?如果是这样,请考虑将它们移动到单独的文件中,并包括标题。如果它们在不同的文件中,您很可能缺少一个包含或链接信息。@NathanOliver,但如果我这样做
类笛卡尔
,然后类spheremic{}
在spheremic中,我无法评估要转换的笛卡尔函数的成员。@WilliamThompson这就是为什么要使用头文件和cpp文件。将声明放在头文件中,并将需要硬实例的实际代码放在包含这些头文件的cpp文件中。有时这需要重新修改接口,但这只是循环引用在C++中如何工作。请提供。你的例子是最小的,但不完整,正因为如此-不可验证。