为什么我收到此错误? 在我将此文件添加到Xcode之前,这不是一个错误,不确定是什么错误。 在我的队列类中删除函数:
class queue {
private:
point* Q[MSIZE];
int front, rear, size;
public:
queue() {
// initialize an empty queue
front = 0; rear = 0; size = 0;
for (int j=0; j < MSIZE; ++j)
Q[j] = 0;
}
void insert(point* x) {
if (size != MSIZE) {
front++; size++;
if (front == MSIZE) front = 0;
Q[front] = x;
}
}
point del() {
if (size != 0) {
rear++; if (rear == MSIZE) rear = 0;
point temp(Q[rear]->getx(), Q[rear]->gety());
size--;
return temp;
};
} // error "Control may reach end of non-void function" on this line
}
答案 0 :(得分:1)
函数del
返回point
。如果size!= 0,则没有return语句。你需要在另一种情况下返回一些东西,或者函数可以在不返回point
的情况下结束,这会产生错误。
解决这个问题的一种方法是:return null
不能做到这一点:
bool del(point& pointRef)
{
if (size != 0)
{
rear++;
if (rear == MSIZE)
{
rear = 0;
}
pointRef = Q[rear];
size--;
return true;
}
return false;
}
然后在这个功能之外,如果你弄错了,你什么都不知道。如果你成功了,那么你知道你有一个指向被删除的point
的指针。
调用它的示例:
point aPoint;
bool result;
result = del(aPoint);
if(result)
{
// do stuff with aPoint
}
else
{
// the queue was empty
}