C++ 初始化引用时出错

C++ 初始化引用时出错,c++,list,reference,C++,List,Reference,我试图声明对int列表的引用。当我编译时,对于函数样式转换或类型构造,list¤t;,我得到了一个预期的“(”错误,在这里我声明了一个引用。这里有什么问题吗?我到处看了看,这似乎是一个引用的初始化方式。由于它无法编译,我一定错过了一些东西 #include <iostream> #include <vector> #include <list> using namespace std; int main() { list<int&

我试图声明对int列表的引用。当我编译时,对于函数样式转换或类型构造,
list¤t;
,我得到了一个
预期的“(”错误,在这里我声明了一个引用。这里有什么问题吗?我到处看了看,这似乎是一个引用的初始化方式。由于它无法编译,我一定错过了一些东西

#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
}
#包括
#包括
#包括
使用名称空间std;
int main(){
名单;
列表&当前;
current=list;//或仅list¤t=list;两者都有错误
}

这不是初始化引用的方式。请使用:

list<int>& current = <variable>; // list;
将导致编译器错误,因为您有:

using namespace std;
  • 列表
    将是一个糟糕的变量名,即使您没有使用

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

    std::list<int> my_list;
    std::list<int>& current = my_list;
    
    std::列出我的清单;
    标准::列表和当前=我的列表;
    
    reference是对象的另一个名称,所以所有的引用都必须初始化,你不能简单地写:int&r;你应该写int d;int&r=d;你确定这对重新定义为对象的名称
    list
    有效吗?@chearsandhth.-Alf,不,我不认为会。所以当我有
    list¤t=list;
    时,它实际上是beca使用
    list
    并不是我刚刚创建的
    list
    ,而是函数?只是现在尝试一下,如果我使用不同的变量名,它似乎可以工作。这就是问题所在。谢谢!@LeibnizMan,两者都是。@RSahu“它都是”的意思?编译器认为它既是函数又是变量?
    std::list<int> my_list;
    std::list<int>& current = my_list;