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