【发布时间】:2021-08-29 14:49:26
【问题描述】:
我想添加我定义的两个队列,我的重载方法有什么问题? 我已经尝试过运算符重载的确切语法,但它不起作用! 这些队列是动态数组,我们在 Queue 类中为它们定义了一些操作符
#include <iostream>
using namespace std;
class Queue {
int size;
int* queue;
public:
Queue() {
size = 0;
queue = new int[100];
}
void add(int data) {
queue[size] = data;
size++;
}
void remove() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
else {
for (int i = 0; i < size - 1; i++) {
queue[i] = queue[i + 1];
}
size--;
}
}
void print() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
for (int i = 0; i < size; i++) {
cout<<queue[i]<<" <- ";
}
cout << endl;
}
Queue operator + (Queue &q1 , Queue &q2 ) {
Queue q3 = q1 + q2;
return q3;
}
};
主要:
int main() {
Queue q1;
q1.add(42); q1.add(2); q1.add(8); q1.add(1);
Queue q2;
q2.add(3); q2.add(66); q2.add(128); q2.add(5);
Queue q3 = q1+q2;
q3.print();
return 0;
}
【问题讨论】:
-
你自己引用了自身内部的操作符。
-
这个网站展示了一个如何重载 operator+ 来添加类的例子:cprogramming.com/tutorial/operator_overloading.html
-
这是一个sololearn.com的任务,只需要iostream库就可以了,所以没有新库是前提。
标签: c++ oop operators overloading que