0
頭文件,老師提供的,所以我懷疑這個錯誤就出在這裏,但它拋出未處理的異常未處理的異常,看起來不像什麼是我使用錯誤的
template<class ItemType>
class Node
{
private:
ItemType item;
Node<ItemType> *next;
public:
Node(); //default constructor
Node(const ItemType &anItem); //none default constructor #1
Node(const ItemType &anItem, Node<ItemType> *nextPtr); //none default constructor #2
void setItem(const ItemType &anItem);
void setNext(Node<ItemType> *nextPtr);
ItemType getItem() const;
Node<ItemType> *getNext() const;
};
/*other functions*/
template<class ItemType>
Node<ItemType>* Node<ItemType>::getNext() const {
return next;
}
的功能,我得到遇到麻煩的是這個(我測試了所有可以正常工作的功能)。
bool getNextUnvisitedCity(char citeh, char &adjCity){
if(!(isInMap(citeh)))
return false;
else {
for(int i=0; i<9; i++){
if(flightMap[i].city_name==citeh){
if(flightMap[i].adjacent_city=NULL)
return false;
Node<char>* tempPtr;
tempPtr=flightMap[i].adjacent_city;
while(tempPtr->getNext()!=NULL){
if(!(isVisited(tempPtr->getItem()))){
adjCity=tempPtr->getItem();
return true;
}
else
tempPtr=tempPtr->getNext();
}
if(flightMap[i].adjacent_city->getNext()!=NULL){
if(!(isVisited(flightMap[i].adjacent_city->getItem()))) {
adjCity=flightMap[i].adjacent_city->getItem();
return true;
} else
return false;
} } } } }
我得到的錯誤是 Unhandled exception at 0x00fe4a76 in Assignment 12.exe: 0xC0000005: Access violation reading location 0x00000004
與特定的錯誤是this | 0x00000000 {item=??? next=??? } | const Node<char> * const
我沒有我的測試中,因爲同樣的事情,但我沒有錯誤做任何事情!我一直在刮我的方式在互聯網上爲什麼發生這種情況的信息,但我沒有得到任何理由
對於初學者來說,行'如果(flightMap [我] .adjacent_city = NULL)'可能是爲了讀取'if(flightMap [i] .adjacent_city == NULL')(注意'='改爲'==')。實際上,這很可能是直接問題的原因。 –
這個問題似乎是脫離主題,因爲你沒有做任何不正確的事情。 –
他說他的程序行爲不正確,所以它是關於主題的,但是,可能是問題在其他地方,而不是在發佈的代碼中。 – Dialecticus