我在制作两个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);'。 –