【发布时间】:2012-07-02 16:22:09
【问题描述】:
我有代码:
// class declaration
class Vector3D;
// class declaration and definition
class Point3D {
// ...
// function declaration (only needs class declarations)
Point3D operator+(const Vector3D &);
};
// class definition
class Vector3D {
// ...
};
// function definition (needs class definitions)
inline Point3D Point3D::operator+(const Vector3D &vector) {
// ...
}
但我得到错误: 'Graphic::Point3D::operator +' : 重新定义;不同的类型修饰符
【问题讨论】:
-
从函数定义中移除内联
-
operator+应该是一个 const 方法。# -
你用的是什么编译器?编译器在哪一行发出错误?您是否错误地定义了两次函数?
-
@PolGraphic:我怀疑您发布的代码与您尝试编译的代码大不相同。错误消息表明您的实际代码中很可能存在
const放置问题,这未反映在您发布的 sn-p 中。inline在这里不是问题。 -
@DeadMG:对不起,我的错。我将此代码作为another question 的答案,忘记了
const。
标签: c++ operator-keyword redefinition