2016-07-26 64 views
-2

intのリストへの参照を宣言しようとしています。私がコンパイルすると、expected '(' for function-style cast or type constructionのエラーlist<int>& current;が出てきます。ここで私は参照を宣言しています。ここの問題は何ですか?私は全面的に見て、これは参照がどのように初期化されているかのようです。私はそれがコンパイルされないので、逃した何かがあるに違いありません。参照の初期化時にエラーが発生する

#include <iostream> 
#include <vector> 
#include <list> 

using namespace std; 

int main() { 
    list<int> list; 
    list<int>& current; 
    current = list; // or just list<int>& current = list; both error 
} 
+0

参照はオブジェクトの別の名前なので、すべての参照を初期化する必要があります。単純に次のように書くことはできません。int & r; int d; int&r = d; – AnatolyS

答えて

1

これは、参照を初期化する方法ではありません。用途:

list<int>& current = <variable>; // list; 

listは、変数名のお粗末な選択です。あなたが持っているので

  1. list<int> list; 
    

    を使用すると、コンパイルエラーになります:

    using namespace std; 
    
  2. listをあなたは

    using namespace std; 
    
  3. を使用していなかった場合でも、ひどい変数名になります

using namespace std;行を削除し、変数に別の名前を使用することをおすすめします。

std::list<int> my_list; 
std::list<int>& current = my_list; 
+0

これはオブジェクトとして再定義された 'list'という名前で動作しますか? –

+0

@ Cheersandhth.-Alf、いいえ、私はそうは思わない。 –

+0

だから私は 'list &current = list;'を持っていたとき、実際に 'list'が私が作成した' list 'とはみなされなかったからです。ちょうどそれを試してみてください。別の変数名を使用していると思われます。それが問題でした。ありがとう! –

関連する問題