心中已經創建了這個類在這裏:爲什麼不編譯?
//整數矩形類
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());
}
};
編譯器告訴我,x和y的寬度和高度都除其他事項外未申報。這幾乎就像班級沒有看到自己。
感謝
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
請給予更多的上下文信息,據我可以看到你的代碼是正確的。 – WolfgangA 2010-10-06 13:27:49
「其中之一」?像什麼? – 2010-10-06 13:28:16
也許你的編譯器需要一個屬性'public','private'或'protected'。通常,一個類的默認存儲爲'private',一個結構的默認存儲''public''。 – Benoit 2010-10-06 13:29:56