2010-10-06 5 views
3

I'v a créé cette classe ici:Pourquoi n'est-ce pas la compilation?

// Entier classe rectangle

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()); 
    } 
}; 

Le compilateur me dit que x et y et la largeur et la hauteur sont non déclarés entre autres. C'est presque comme si la classe ne se voyait pas.

Merci

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 
+0

S'il vous plaît donner plus d'informations de contexte, pour autant que je peux voir votre code est correct. – WolfgangA

+0

"entre autres choses"? Comme ça? –

+0

Peut-être votre compilateur veut un attribut 'public',' private' ou 'protected'. Habituellement, une classe a le stockage par défaut 'private' et une structure a le stockage par défaut' public'. – Benoit

Répondre

10

devrait être

bool isEmpty() 

au lieu de

bool isEmpty 
7

Si vous utilisez bool isEmpty() { ... }

3

première erreur que je pourrais trouver est

bool isEmpty { 

devrait devenir

bool isEmpty() const { 
+0

+1 pour ajouter const; P – stijn

+0

Que fait le const? (dans ce contexte) – jmasterx

+0

Il est interdit à une méthode const d'une classe de modifier des variables membres. Si cette méthode le fait, ou appelle une méthode non-const, elle provoque des erreurs de compilation –

Questions connexes