コード:
point3f.h
Class Point3f {
...
inline void project2D(ProjType p, const Point2i& view) const;
};
point3f.cpp
inline void Point3f::project2D(ProjType p, const Point2i& view) const {
switch(p) {
case PROJ_XY:
glVertex2f(x * view.x, y * view.y);
break;
case PROJ_YZ:
glVertex2f(y * view.x, z * view.y);
break;
case PROJ_XZ:
glVertex2f(x * view.x, z * view.y);
break;
default:
break;
}
}
この関数を呼び出すと、コンパイル時にエラーが発生します。
undefined reference to `Point3f::project2D(ProjType, Point2i const&) const'
inline
記号の有無にかかわらず、すべてのケースを試しました。
inline
cppではなくヘッダーに:
Warning: inline function ‘void Point3f::project2D(ProjType, const Point2i&) const’ used but never defined [enabled by default
undefined reference to `Point3f::project2D(ProjType, Point2i const&) const'|
inline
ヘッダー、CPPでも:
Warning: inline function ‘void Point3f::project2D(ProjType, const Point2i&) const’ used but never defined [enabled by default
undefined reference to `Point3f::project2D(ProjType, Point2i const&) const'|
inline
ヘッダーではなく、cppで:
undefined reference to `Point3f::project2D(ProjType, Point2i const&) const'|
inline
ヘッダーにもcppにもありません:
It works but that's not what I want
質問:
const and inline member function
意味がありますか?- 宣言する方法は
const and inline member function
?
前もって感謝します。