为了账号安全,请及时绑定邮箱和手机立即绑定

用Dev cpp报错

18行

void MyQueue::ClearQueue()

undefined reference to `WinMain'

[Error] ld returned 1 exit status

用Dev cpp报错

正在回答

3 回答

有人知道为什么了吗?我用的codeblocks也这样,放进MyQueue.h就可以运行

0 回复 有任何疑惑可以回复我~

这个方法确实有用,但是不明白为什么?

0 回复 有任何疑惑可以回复我~

找出来问题了,鉴于没有人回答,就把自己怎么解决的说一下啦

直接把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


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

用Dev cpp报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信