初始化引用时出现错误

问题描述:

我正在尝试声明对整数列表的引用。当我编译时,我得到list<int>& current;expected '(' for function-style cast or type construction错误,在那里我声明了一个引用。这里有什么问题?我看了一遍,这似乎是如何参考初始化。必须有一些我错过了,因为它不会编译。初始化引用时出现错误

#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

引用对象的另一个名字,因此,所有引用必须initilized,你不能简单地写:整数& r;你应该写INT d; int&r = d; – AnatolyS

这不是你如何初始化引用。使用方法:

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

list是变数名称的不好选择。

  1. 使用

    list<int> list; 
    

    会导致编译器错误,因为你有:

    using namespace std; 
    
  2. list将是,即使你没有使用可怕的变量名

    using namespace std; 
    

我建议删除using namespace std;行,并为变量使用不同的名称。

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

你确定这可以与名称'列表'重新定义为一个对象? –

+0

@ Cheersandhth.-Alf,不,我认为不会。 –

+0

所以当我有'list &current = list;'时,实际上是因为'list'不被认为是我刚创建的'list ',但函数?现在就试试吧,看起来如果我使用不同的变量名称,它就会起作用。这是问题。谢谢! –