2015-05-25 71 views
0

我想創建一個具有在運行時確定大小的數組的類。但是,當我嘗試訪問「addToSet」函數中的數組時,我收到「未聲明的標識符錯誤」。任何幫助,將不勝感激。我是C++新手。錯誤與動態數組

頭文件:

class ShortestPathSet 
{ 
private: 
    //Variables 
    int *pathSet; 

public: 
    //Variables 

    int size; 


    //Constructor 
    ShortestPathSet(int numVertices); 

    //Functions 
    void addToSet(int vertice, int distance); 

}; 

類文件:

#include "ShortestPathSet.h" 

using namespace std; 

ShortestPathSet::ShortestPathSet(int numVertices) 
{ 
    size = numVertices; 
    pathSet = new int[numVertices]; 
} 

void addToSet(int vertice, int distance) 
{ 
    pathSet[vertice] = distance; 
} 

回答

2

你錯過的類名稱的位置:

void addToSet(int vertice, int distance) 

您的意思是:

void ShortestPathSet::addToSet(int vertice, int distance) 
    ^^^^^^^^^^^^^^^^^ 

按原樣,您聲明並定義了一個完全不相關的函數,並且在該函數的範圍內不存在這樣的變量pathSet - 因此未聲明的標識符。

附註:您可能不希望size爲公共成員變量。

+0

因此,即使使用「命名空間標準」我仍然必須包括這個?另外,非常感謝你! –

+0

@KarlTaht這與'namespace std'無關。爲了在類定義之外定義一個類成員函數,你需要用類名來限定它。 – Barry

+0

那麼我應該不使用頭文件來簡化這個類嗎? –