【C++】用Dev-C++写的C++程序老是报错,请问为什么?如何解决?

浏览:18日期:2023-04-01

问题描述

MyQueue.cpp的代码如下:

#include 'MyQueue.h'#include <iostream>using namespace std;/** * 队列的初始化 * @param queueCapacity int */MyQueue::MyQueue(int queueCapacity){ m_iQueueCapacity = queueCapacity; m_pQueue = new int[m_iQueueCapacity]; ClearQueue();}/** * 销毁队列 */MyQueue::~MyQueue(){ delete []m_pQueue; m_pQueue = NULL;}/** * 清空队列 */void MyQueue::ClearQueue(){ m_iHead = 0; m_iTail = 0; m_iQueueLen = 0;}/** * 判断队列是否为空 * @return bool */bool MyQueue::QueueEmpty() const{ return m_iQueueLen == 0;}/** * 判断队列是否已满 * @return bool */bool MyQueue::QueueFull() const{ // 可通过判断长度和容量是否相等来判断队列是否已满 return m_iQueueLen == m_iQueueCapacity;}/** * 队列长度 * @return int */int MyQueue::QueueLength() const{ return m_iQueueLen;}/** * 新元素入队 * @param element int * @return bool */bool MyQueue::EnQueue(int element){ // 在入队之前,需要判断队列是否已满,如已满不可插入 if (QueueFull()) {return false; } m_pQueue[m_iTail] = element; // 入队操作,队头不需要变化,队尾需要加1 m_iTail++; // 取余操作,防止溢出。比如当容量为4的队列加满数据,此时队列出去一个数,则队尾指向数组[0]的位置。如果m_Tail++就会变成数组[5],所以用取余%——放队列放满4个数时,4%4=0,对尾自然指向了数组[0]。 m_iTail = m_iTail % m_iQueueCapacity; m_iQueueLen++; return true;}/** * 首元素出队 * @param element int * @return bool */bool MyQueue::DeQueue(int &element){ // 在出队之前,需要判断队列是否已空,如已空不可出队 if (QueueEmpty()) {return false; } // 这一步的意思是为了获得出队的元素的值 element = m_pQueue[m_iHead]; // 出队操作,队尾不需要变化,队头需要加1 m_iHead++; m_iHead = m_iHead % m_iQueueCapacity; m_iQueueLen--; return true;}/** * 遍历队列,输出所有元素值 */void MyQueue::QueueTraverse(){ for (int i = m_iHead; i < m_iQueueLen + m_iHead; i++) {cout << m_pQueue[i % m_iQueueCapacity] << endl; } cout << endl;}

MyQueue.h的代码如下:

/** * 环形队列C++实现 (注释:讲解一些 C 语言用法) */class MyQueue{public: MyQueue(int queueCapacity);// InitQueue(&Q) 创建队列 virtual ~MyQueue();// DestoryQueue(&Q) 销毁队列 void ClearQueue();// ClearQueue(&Q) 清空队列 bool QueueEmpty() const;// QueueEmpty(Q)判空队列 bool QueueFull() const; // 判断队列是否已经满了 int QueueLength() const;// QueueLength(Q) 队列长度 bool EnQueue(int element);// EnQueue(&Q, element) 新元素入队 bool DeQueue(int &element);// DeQueue(&Q, &element)首元素出队 void QueueTraverse(); // QueueTraverse(Q,visit()) 遍历队列,visit()函数:访问的方法private: int *m_pQueue; // 队列数组指针 int m_iQueueLen;// 队列元素个数 int m_iQueueCapacity; // 队列数组容量 int m_iHead; // 队头 int m_iTail; // 队尾};

编译MyQueue.cpp老是提示报错:

【C++】用Dev-C++写的C++程序老是报错,请问为什么?如何解决?

Dev-C++编辑器的版本为:5.11

编译器版本为:

【C++】用Dev-C++写的C++程序老是报错,请问为什么?如何解决?

电脑系统为:win7 64位

求解?

问题解答

回答1:

简单说编译器找不到main function,所以报错。

回答2:

你这没有入口函数也就是main函数

相关文章: