Привет, ребята, так что я пытался реализовать стек с помощью двух очередей, однако, я столкнулся с проблемой, говоря о том, что ссылки на класс my_queue не определеннеопределенная ссылка на класса C++
ошибки являются (я включая только некоторые, так как все есть неопределенная ссылка)
my_stack.cpp:(.text+0x15): undefined reference to `my_queue::my_queue()'
my_stack.cpp:(.text+0x25): undefined reference to `my_queue::my_queue()'
my_stack.cpp:(.text+0x31): undefined reference to `my_queue::my_queue()'
my_stack.cpp:(.text+0x3d): undefined reference to `my_queue::my_queue()'
/tmp/ccNs1Fuy.o: In function `my_stack::push(int)':
`my_queue::dequeue()'
код для my_stack ниже. Также у меня есть два файла заголовка для класса my_stack и класса my_queue, но я предполагаю, что в них нет ошибки.
#include<iostream>
#include<vector>
#include"my_stack.h"
#include"my_queue.h"
my_stack::my_stack(){
my_queue q1;
my_queue q2;
}
void my_stack::push(int n){
q1.enqueue(n);
}
int my_stack::pop(){
for(int i =0; i<q1.size()-1; i++){
int temp = q1.dequeue();
q2.enqueue(temp);
}//dequeue every element in the q1 except the last element and enqueue to q2
int x = q1.dequeue();// dequeue the last item of q1
return x;
}
void my_stack::is_empty(){
if(q1.size() == 0){
std::cout<< "the stack is empty"<<'\n';
}
else{
std::cout<< "the stack is not empty"<<'\n';
}
}
int main(){
my_stack m;
m.push(4);
m.push(3);
int yo = m.pop();
std::cout<<yo<<'\n';
m.is_empty();
return 0;
}
Спасибо, ребята, извините за неорганизованный вопрос.
Как говорится, нет определения для 'my_queue :: my_queue()' –
Это ошибка компоновщика. Как вы компилируете свою программу? – ooga
необходимо просмотреть файлы заголовков – jodag