第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

做出了老師說的模板類,但是運行時提示runtime library,幫忙看下

//頭文件?MyQueue.h

#ifndef?MYQUEUE_H
#define?MYQUEUE_H
#include?<iostream>
#include?<string>
using?namespace?std;

template?<typename?T>
class?MyQueue
{
public:
MyQueue::MyQueue(int?queueCapacity)
{
	m_iQueueCapacity?=?queueCapacity;
	m_iHead?=?0;
	m_iTail?=?0;
	m_iQueueLen?=?0;
	m_pQueue?=?new?T[m_iQueueCapacity];
}

MyQueue::~MyQueue()
{
	delete?m_pQueue;
	m_pQueue?=?NULL;
}

void?MyQueue::ClearQueue()
{
	m_iHead?=?0;
	m_iTail?=?0;
	m_iQueueLen?=?0;
}

bool?MyQueue::QueueEmpty()?const
{
	if?(m_iQueueLen?==?0)
	{
		return?true;
	}
	else
	{
		return?false;
	}
	//return?m_iQueueLen?==?0???true:false;
}

bool?MyQueue::QueueFull()?const
{
	if?(m_iQueueLen?==?m_iQueueCapacity)
	{
		return?true;
	}
	else
	{
		return?false;
	}
	//return?m_iQueueLen==m_iQueueCapacity??true:false;
}

T?MyQueue::QueueLength()?const
{
	return?m_iQueueLen;
}

bool?MyQueue::EnQueue(T?element)
{
	if?(QueueFull()?==?true)
	{
		return?false;
	}
	else
	{
		m_pQueue[m_iTail]?=?element;
		m_iTail++;
		m_iTail?=?m_iTail%m_iQueueCapacity;
		m_iQueueLen++;
		return?true;
	}
}

bool?MyQueue::DeQueue(T?&?element)
{
	if?(QueueEmpty()?==?true)
	{
		return?false;
	}
	else
	{
		element?=?m_pQueue[m_iHead];
		m_iHead++;
		m_iHead?=?m_iHead%m_iQueueCapacity;
		m_iQueueLen--;
		return?true;
	}
}

void?MyQueue::QueueTraverse()
{
	for?(int?i?=?m_iHead;i?<?m_iHead?+?m_iQueueLen;i++)
	{
		cout?<<?m_pQueue[i%m_iQueueCapacity]?<<?endl;
	}
}

private:
	T?*m_pQueue;										//隊列數組指針
	int?m_iQueueLen;									//隊列元素個數
	int?m_iQueueCapacity;								//隊列數組容量
	int?m_iHead;										//隊列頭
	int?m_iTail;										//隊列尾
};




#endif
//源文件?demo.cpp

#include?"MyQueue.h"

int?main()
{
	MyQueue<string>?*p=new?MyQueue<string>(4);
	p->EnQueue("A");
	p->EnQueue("1");
	p->EnQueue("6");
	p->EnQueue("8");
	p->QueueTraverse();
	string?e="0";
	p->DeQueue(e);
	cout?<<?e?<<?endl;
	p->DeQueue(e);
	cout?<<?e?<<?endl;
	
	p->QueueTraverse();
	p->ClearQueue();
	p->QueueTraverse();
	p->EnQueue("c");
	p->EnQueue("f");
	p->QueueTraverse();
	delete?p;
	p=NULL;
}

錯誤提示如圖,求大神指點下哪里錯了

58a1698c0001775604780374.jpg

58a1698d00014c8a05000327.jpg


正在回答

1 回答

改好了

類內定義函數不用加作用域限定符

以下代碼

//源文件?demo.cpp
?
#include?"MyQueue.h"
#include?<iostream>
using?namespace?std;?
?
int?main()
{
????MyQueue<string>?*p=new?MyQueue<string>(4);
????p->EnQueue("A");
????p->EnQueue("1");
????p->EnQueue("6");
????p->EnQueue("8");
????p->QueueTraverse();
????string?e="0";
????p->DeQueue(e);
????cout?<<?e?<<?endl;
????p->DeQueue(e);
????cout?<<?e?<<?endl;
?????
????p->QueueTraverse();
????p->ClearQueue();
????p->QueueTraverse();
????p->EnQueue("c");
????p->EnQueue("f");
????p->QueueTraverse();
????delete?p;
????p=NULL;
????return?0;
}
//頭文件?MyQueue.h
?
#ifndef?MYQUEUE_H
#define?MYQUEUE_H
#include?<iostream>
#include?<string>
using?namespace?std;
?
template?<typename?T>
class?MyQueue
{
public:
MyQueue(int?queueCapacity)
{
????m_iQueueCapacity?=?queueCapacity;
????m_iHead?=?0;
????m_iTail?=?0;
????m_iQueueLen?=?0;
????m_pQueue?=?new?T[m_iQueueCapacity];
}
?
~MyQueue()
{
????delete?m_pQueue;
????m_pQueue?=?NULL;
}
?
void?ClearQueue()
{
????m_iHead?=?0;
????m_iTail?=?0;
????m_iQueueLen?=?0;
}
?
bool?QueueEmpty()?const
{
????if?(m_iQueueLen?==?0)
????{
????????return?true;
????}
????else
????{
????????return?false;
????}
????//return?m_iQueueLen?==?0???true:false;
}
?
bool?QueueFull()?const
{
????if?(m_iQueueLen?==?m_iQueueCapacity)
????{
????????return?true;
????}
????else
????{
????????return?false;
????}
????//return?m_iQueueLen==m_iQueueCapacity??true:false;
}
?
T?QueueLength()?const
{
????return?m_iQueueLen;
}
?
bool?EnQueue(T?element)
{
????if?(QueueFull()?==?true)
????{
????????return?false;
????}
????else
????{
????????m_pQueue[m_iTail]?=?element;
????????m_iTail++;
????????m_iTail?=?m_iTail%m_iQueueCapacity;
????????m_iQueueLen++;
????????return?true;
????}
}
?
bool?DeQueue(T?&?element)
{
????if?(QueueEmpty()?==?true)
????{
????????return?false;
????}
????else
????{
????????element?=?m_pQueue[m_iHead];
????????m_iHead++;
????????m_iHead?=?m_iHead%m_iQueueCapacity;
????????m_iQueueLen--;
????????return?true;
????}
}
?
void?QueueTraverse()
{
????for?(int?i?=?m_iHead;i?<?m_iHead?+?m_iQueueLen;i++)
????{
????????cout?<<?m_pQueue[i%m_iQueueCapacity]?<<?endl;
????}
}
?
private:
????T?*m_pQueue;???????????????????????????????????????//隊列數組指針
????int?m_iQueueLen;???????????????????????????????????//隊列元素個數
????int?m_iQueueCapacity;??????????????????????????????//隊列數組容量
????int?m_iHead;???????????????????????????????????????//隊列頭
????int?m_iTail;???????????????????????????????????????//隊列尾
};
?
?
?
?
#endif

還有,demo.cpp可能還有點小問題,不過影響不大,程序能正常運行

再來張圖

http://img1.sycdn.imooc.com//58a44d230001f47c19201080.jpg

0 回復 有任何疑惑可以回復我~
#1

寶慕林3490596 提問者

用你給的代碼測試還是會提示runtime library,不知道是不是編譯器或者電腦的問題,我用的是VS2015專業(yè)版 不過這種類內定義的編譯習慣確實不太好,雖然不用敲那么多代碼,減少些麻煩,不過后面可讀性差,但是放在CPP里定義就要每條都加template<typename T>了,雖然沒解決,但還是很感謝你的回答
2017-02-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

做出了老師說的模板類,但是運行時提示runtime library,幫忙看下

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號