慕神7694260
2017-02-15 17:58
18行
void MyQueue::ClearQueue()
undefined reference to `WinMain'
[Error] ld returned 1 exit status
用Dev cpp报错
有人知道为什么了吗?我用的codeblocks也这样,放进MyQueue.h就可以运行
这个方法确实有用,但是不明白为什么?
找出来问题了,鉴于没有人回答,就把自己怎么解决的说一下啦
直接把MyQueue.cpp里的内容放到MyQueue.h变成一个整合的文件就可以了
以下MyQueue.h代码
#ifndef MYQUEUE_H #define MYQUEUE_H #include <iostream> using namespace std; class MyQueue { public: MyQueue(int queueCapacity); virtual ~MyQueue(); void ClearQueue(); bool QueueEmpty() const; bool QueueFull() const; int QueueLength() const; bool EnQueue(int element); bool DeQueue(int &element); void QueueTraverse(); private: int *m_pQueue; int m_iQueueLen; int m_iQueueCapacity; int m_iHead; int m_iTail; }; 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; } bool MyQueue::QueueEmpty() const { return m_iQueueLen == 0 ? true:false; } int MyQueue::QueueLength() const { return m_iQueueLen; } bool MyQueue::QueueFull() const { if(m_iQueueLen == m_iQueueCapacity) return true; else return false; } bool MyQueue::EnQueue(int element) { if(QueueFull()) return false; else { m_pQueue[m_iTail] = element; m_iTail++; m_iTail = m_iTail % m_iQueueCapacity; m_iQueueLen++; return true; } } bool MyQueue::DeQueue(int &element) { if(QueueEmpty()) return false; else { element = m_pQueue[m_iHead]; m_iHead++; m_iHead = m_iHead % m_iQueueCapacity; m_iQueueLen--; return true; } } void MyQueue::QueueTraverse() { cout<<endl<<"以下遍历队列:"<<endl; for(int i = m_iHead;i < m_iQueueLen;i++) { i = i % m_iQueueCapacity; cout<<m_pQueue[i]<<endl; } cout<<endl; } #endif
数据结构探险—队列篇
110035 学习 · 170 问题
相似问题