views:

134

answers:

3

I'v created this class here:

//Integer rectangle class

class AguiRectangle {
    int x;
    int y;
    int width;
    int height;
public:

    bool isEmpty {

        return x == 0 && y == 0 &&
           width == 0 && height == 0;
    }

    int getTop() {
        return x;
    }
    int getLeft() {
        return y;
    }

    int getBottom() {
        return y + height;
    }
    int getRight() {
        return x + width;
    }

    AguiPoint getTopLeft()
    {
        return AguiPoint(getTop(),getLeft());
    }
    AguiPoint getBottomRight()
    {
        return AguiPoint(this->getBottom(),this->getRight());
    }
};

The compiler tells me that x and y and width and height are undeclared among other things. It's almost like the class does not see itself.

Thanks

Error   14  error C2673: 'getBottomRight' : global functions do not have 'this' pointers    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   178
Error   16  error C2673: 'getBottomRight' : global functions do not have 'this' pointers    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   178
Error   13  error C2665: 'AguiPoint::AguiPoint' : none of the 4 overloads could convert all the argument types  c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   174
Error   6   error C2628: 'AguiRectangle' followed by 'int' is illegal (did you forget a ';'?)   c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   158
Error   3   error C2473: 'isEmpty' : looks like a function definition, but there is no parameter list.  c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   153
Error   5   error C2238: unexpected token(s) preceding ';'  c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   156
Error   17  error C2227: left of '->getRight' must point to class/struct/union/generic type c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   178
Error   15  error C2227: left of '->getBottom' must point to class/struct/union/generic type    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   178
Error   2   error C2146: syntax error : missing ';' before identifier 'result'  c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   64
Error   19  error C2143: syntax error : missing ';' before '}'  c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   180
Error   21  error C2079: 'pp' uses undefined class 'AguiPointf' c:\Users\Josh\Documents\Visual Studio 2008\Projects\Agui\Alleg_5\main.cpp   35
Error   8   error C2065: 'y' : undeclared identifier    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   162
Error   9   error C2065: 'y' : undeclared identifier    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   166
Error   7   error C2065: 'x' : undeclared identifier    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   159
Error   11  error C2065: 'x' : undeclared identifier    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   169
Error   12  error C2065: 'width' : undeclared identifier    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   169
Error   10  error C2065: 'height' : undeclared identifier   c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   166
Error   4   error C2059: syntax error : 'return'    c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   155
Error   18  error C2059: syntax error : '}' c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   180
Error   20  error C2059: syntax error : '}' c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   180
Error   1   error C2027: use of undefined type 'AguiPointf' c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\Agui\AguiBaseTypes.h   59
+6  A: 

Should you be using bool isEmpty() { ... }

Sachin Shanbhag
+8  A: 

should be

bool isEmpty()

instead of

bool isEmpty
stijn
+3  A: 

first error I could find is

bool isEmpty {

should become

bool isEmpty() const {
jdehaan
+1 for adding const ;P
stijn
What does the const do? (in this context)
Milo
a const method of a class is forbidden from modifying member variables. If that method does, or calls a non-const method, it cause compiler errors
RagingIce
Also you can call a const method of a constant (you can't call a non-const method of a constant).
panzi
It's a matter of const correctness, to specify which methods do not modify the state of the object. This is really helpful to avoid some stupid mistakes and let the compiler do more checking at compile time. See http://en.wikipedia.org/wiki/Const-correctness.
jdehaan