All pastes #372232 Raw Edit

Someone

public cpp v1 · immutable
#372232 ·published 2007-02-25 22:26 UTC
rendered paste body
/*I'm getting errors I don't understand with this code:(never mind the linker errors, I guess they're the result of the above warnings, but I don't know why the warnings are occurring)The compiler commandline is:c++ test_point.cpp point.cpp -o test_pointErrors:point.h:23: warning: inline function ‘float gfx::point::x() const’ used but never definedpoint.h:26: warning: inline function ‘float gfx::point::y() const’ used but never definedpoint.h:17: warning: inline function ‘gfx::point& gfx::point::x(float)’ used but never definedpoint.h:20: warning: inline function ‘gfx::point& gfx::point::y(float)’ used but never definedpoint.h:30: warning: inline function ‘bool gfx::point::operator!=(const gfx::point&) const’ used but never definedpoint.h:29: warning: inline function ‘bool gfx::point::operator==(const gfx::point&) const’ used but never defined/tmp/ccI5jwDk.o: In function `main':test_point.cpp:(.text+0xa8): undefined reference to `gfx::point::x() const'test_point.cpp:(.text+0x13c): undefined reference to `gfx::point::y() const'test_point.cpp:(.text+0x1d5): undefined reference to `gfx::point::x(float)'test_point.cpp:(.text+0x1dd): undefined reference to `gfx::point::x() const'test_point.cpp:(.text+0x27a): undefined reference to `gfx::point::y(float)'test_point.cpp:(.text+0x282): undefined reference to `gfx::point::y() const'test_point.cpp:(.text+0x33a): undefined reference to `gfx::point::operator!=(gfx::point const&) const'test_point.cpp:(.text+0x3c4): undefined reference to `gfx::point::x(float)'test_point.cpp:(.text+0x3d7): undefined reference to `gfx::point::y(float)'test_point.cpp:(.text+0x3e9): undefined reference to `gfx::point::operator==(gfx::point const&) const'*/// point.h#include "point.h"namespace gfx {    point& point::x(float ax) {        cx = ax;        return *this;    }    point& point::y(float ay) {        cy = ay;        return *this;    }    float point::x() const {        return cx;    }    float point::y() const {        return cy;    }    bool point::operator==(const point& other) const {        return ((other.x() == x()) && (other.y() == y()));    }    bool point::operator!=(const point& other) const {        return ((other.x() != x()) || (other.y() != y()));    }}// point.cpp#ifndef POINT_H#define POINT_Hnamespace gfx {    class point {        protected:            /* coordinate x */            float cx;            /* coordinate y */            float cy;        public:            /** Constructor for the point.             * @param ax the point x.             * @param ay the point y.             */            point(float ax, float ay) :cx(ax), cy(ay) {}            /* setter for x */            inline point& x(float ax);            /* setter for y */            inline point& y(float ay);            /* getter for x */            inline float x() const;            /* getter for y */            inline float y() const;            /* operators */            inline bool operator==(const point& other) const;            inline bool operator!=(const point& other) const;            /* virtual destructor */            virtual ~point(){}    };}#endif// test_point.cpp#include "point.h"#include "../test_macros.h"int main(int argc, char** argv) {    gfx::point a(2,1);    TEST(a.x() == 2, "Testing x getter")    TEST(a.y() == 1, "Testing y getter")    TEST(a.x(3).x() == 3, "Testing x setter")    TEST(a.y(4).y() == 4, "Testing y setter")    gfx::point b(2,1);    TEST(a != b, "Testing operator!=")    a.x(2).y(1);    TEST(a == b, "Testing operator==")    return 0;}