구조체 및 클래스에 대한 문제가 있습니다. 이제 struct 내부에 클래스를 정의한 다음 구조체를 노드로 만들고 큐를 노드에 푸시합니다. 문제는 팝업 대기열을 수신 할 노드를 생성 할 때 노드의 클래스가 새 것이고 밀어 넣기 전과 같지 않은 경우입니다. 코드를 따르십시오.C++에서 struct 내부에 클래스를 정의 할 수 있습니까?
struct queueNode {
Puzzle puzzle;
queueNode *next;
short lastMove;
};
class Puzzle {
private :
short field[4][4];
short posBlankI;
short posBlankJ;
public :
Puzzle();
bool isFinish();
void print();
void create();
}
class Queue {
private:
queueNode *first, *last;
public:
Queue(){
first = new queueNode;
first->next = NULL;
last = first;
}
~Queue() { delete first; }
bool isEmpty(){ return (first->next == NULL); }
void push(queueNode *aux){
last->next = aux;
last = aux;
}
queueNode pop(){
queueNode *aux = first;
first = first->next;
return *aux;
}
};
//global variable
Queue *q = new Queue();
int main(){
queueNode *root = new queueNode;
root->puzzle.create();
q->push(root);
q->pop().puzzle.print();
return 0;
}
규칙! –
이 코드는 컴파일되지 않기 때문에 명확하게 문제가있는 코드가 아닙니다. 코드의 문제점을 추측하는 것이 가능할 수도 있지만 컴파일하고 실행하여 문제를 보여주는 실제 코드를 게시하면 훨씬 더 나은 해답을 얻을 수 있습니다. –