2011-09-22 95 views
3

這是我第一次嘗試創建一個基本列表(我需要這個在學校),我得到一個奇怪的錯誤。我收到一個'找不到標識符'的錯誤

這是腳本:

#include "stdafx.h" 
#include<iostream> 
#include<conio.h> 

using namespace std; 
using namespace System; 
using namespace System::Threading; 

struct nod 
{ 
    int info; 
    nod *leg; 
}; 

int n, info; 
nod *v; 
void main() 
{ 
    .... 
    addToList(v, info); //I get the error here 
    showList(v); //and here 
} 

void addToList(nod*& v, int info) 
{ 
    nod *c = new nod; 
    c->info=info; 
    c->leg=v; 
    v=c; 
} 

void showList(nod* v) 
{ 
    nod *c = v; 
    while(c) 
    { 
     cout<<c->info<<" "; 
     c=c->leg; 
    } 
} 

確切的錯誤是: 錯誤C3861:「addToList」:找不到

我不知道爲什麼我得到這個......對不起,如果是標識符一個愚蠢的問題,但我對此很新。感謝您的理解。

回答

3

您需要在執行前使用前置聲明來使用方法。把它放在main之前:

void addToList(nod*& v, int info); 

在C/C++中,一個方法只能在聲明之後使用。爲了允許不同方法之間的遞歸調用,您可以使用以允許使用將前向實現的函數/方法。

3

標識符必須在使用前聲明。先前在文本文件中移動您的聲明和addToList的定義。

因此:

#include "stdafx.h" 
#include<iostream> 
#include<conio.h> 

using namespace std; 
using namespace System; 
using namespace System::Threading; 

struct nod 
{ 
    int info; 
    nod *leg; 
}; 

int n, info; 
nod *v; 

void addToList(nod*& v, int info) 
{ 
    nod *c = new nod; 
    c->info=info; 
    c->leg=v; 
    v=c; 
} 

void showList(nod* v) 
{ 
    nod *c = v; 
    while(c) 
    { 
     cout<<c->info<<" "; 
     c=c->leg; 
    } 
} 


void main() 
{ 
    .... 
    addToList(v, info); //No more error here 
    showList(v); //and here 
} 
3

嘗試宣告上述主要addToList:

void addToList(nod*& v, int info);

類似地,對於showList。編譯器需要在使用該函數之前查看該函數的聲明。

+0

愚蠢的愚蠢問題...謝謝你的回答 – Sp3ct3R

0

嘗試在main()之前放置showList()addToList()的聲明。

相關問題