Я пытаюсь реализовать циклическую очередь.
Я объявил размер очереди в заголовочном файле, и я инициировал свою очередь, используя переменную размера через конструктор.
Вот queue.h и queue.cpp файлы.
class Queue
{
public:
int size;
int front, rear;
int A[];
Queue(int size);
bool isEmpty();
void enqueue(int n);
int dequeue();
int Peek();
void Display();
int sizeQ();
};
Вот queue.cpp
Queue::Queue(int size)
{
int A[size];
front = rear = -1;
}
bool Queue::isEmpty(){
if((front == -1) && (rear == -1))
return true;
else
return false;
}
void Queue::Display(){
if(isEmpty()){
cout << "Its empty! Nothing to display"<<endl;
}else{
for(int i=0; i<sizeQ(); i++){
cout << A[i] << endl;
}
}
cout <<endl;
}
Вот мой основной
int main()
{
Queue q1(10);
q1.enqueue(20);
q1.Display();
return 0;
}
Проблема: цикл внутри функции отображения не видит переменную размера, хотя я создал объект, используя размер внутри основного. Когда я отлаживал программу, я увидел, что размер равен 0, поэтому цикл for никогда не запускается.
То, что я пытался
int Queue::sizeQ(){
return size;
}
Я пытался вернуть размер с помощью метода;Однако не повезло. Что я должен сделать, чтобы получить доступ к переменной размера?