2つのオブジェクトの配列を作成するときに、次のエラーが発生します。エッジとボックス。コンパイルエラー:オブジェクトの代わりにポインタを使用する
error: conversion from 'const Edge*' to non-scalar type 'Edge' requested.
私はエッジの配列を返すことを望んでいます。このヘッダファイルには
: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 = new Box(x+i,y);
この声明は不可能と尋ねています。 "Box box ="はボックスの* value *に何かを設定します。しかし、「新しいボックス」は実際にはボックスの値ではなく「ボックス」を作成します。 'Box box = Box(x + i、y);'、あるいはもっと単純に 'Box box(x + i、y);'とすることができます。 –