我在製作兩個obecjts數組時遇到以下錯誤。邊緣和框。我想要返回一個邊數組。編譯錯誤:想要指針而不是對象
在這個頭文件:
class Box
{
private:
bool playerOwned;
bool computerOwned;
Edge boxEdges[4];
int openEdges;
bool full;
public:
Box();
Box(int x, int y);
void setEdges(Edge boxTop, Edge boxBottom, Edge boxLeft, Edge boxRight);
void addEdgeToBox(Edge edge); //add edge to edgeArray.
void setPlayerOwned(bool point);
Edge getBoxEdges() const {return boxEdges;} ****//Error****
bool getPlayerOwned() const {return playerOwned;}
void setComputerOwned(bool point);
bool getComputerOwned()const {return computerOwned;}
int getOpenEdges() const {return openEdges;}
bool isFull()const {return full;}
};
std::ostream& operator<< (std::ostream& out, Box box);
我得到除了在非頭文件試圖創建一個Box替換以下行「邊緣」與「盒子」同樣的錯誤。
Box box = new Box(x+i,y);
該聲明要求不可能。 「Box box =」將框的*值*設置爲某物。但是「新盒子」實際上創造了一個「盒子」,而不是盒子的價值。你可以這樣做:'Box box = Box(x + i,y);',或者更簡單的'Box box(x + i,y);'。 –