2011-06-29 2 views
0

いくつかの詳細は、ここで必要な場合を教えてください: グローバル宣言:エラー: 'クラスのstd ::ベクトル<ルート、のstd ::アロケータ<route>>' という名前のメンバーを持っていない 'exitPoint'

typedef struct route 
    { 
     int   exitPoint; 
     bool   allBranchesTraversed; 
    } route; 

    ****vector <route> routeVector;**** 

を犯人funcが呼び出されるから取得されます。

int main() 
{ 
.... 
    do 
    { 
     ****currentExitPoint = returnShortestWeightedBranch (&routeVector);**** 
     if (currentExitPoint != -1) 
     { 
      objRoute.exitPoint = currentExitPoint;   
      routeVector.push_back (objRoute); 
     } 
     else 
     { 
      break; 
     } 
    } while (1); 
} 

エラーが**でライン上でこのFUNCである:

int returnShortestWeightedBranch (vector <route> *objRouteVector) 
{ 
....  
    for (unsigned int h = 0; h < objRouteVector->size(); h++) 
    { 
     // Locate 'currentExitPoint' in the vector 'exitPointDetailsVector'. 
     for (i = 0; i < exitPointDetailsVector.size(); i++) 
     {  
      // If located 
      ****if (objRouteVector[h].exitPoint == exitPointDetailsVector[i].exitPoint)**** 
      { 
       // For all the branches of the 'currentExitPoint', 
       for (j = 0; j < exitPointDetailsVector[i].branchesVector.size(); j++) 
       { 

............... 
} 

答えて

3

パラメータとしてvector <route> *objRouteVectorを使用する場合は、(*objRouteVector)[h].exitPointが必要です。参照を使用する方が良い:vector <route> &objRouteVector

+0

ありがとう、これはうまくいきました。今、 'ベクトル&objRouteVector'と書くと、どうすればそれにアクセスするのですか?あなたが上に示したやり方はこの参考文献のためにもうまくいくでしょうか? –

+1

@アニシャ:普通のようにアクセスしてください。参照によって、基礎となるオブジェクトにアクセスするための特別な構文はありません。 –

2

objRouteVectorへのポインタを取得したので、参照する必要があります。コードインデックスobjRouteVectorは、ベクトルを全くインデックス化していません。ポインタをインデックスしています。

+0

どうすればいいですか? –

+0

@アニシャ・カール:あなたは参照を取る必要があります。コードを変更せずに動作させる必要があります。 – Puppy

関連する問題