Eri*_*ric 4 c++ compiler-errors
我有一个函数,它将一个指针作为引用参数,但我无法传入&my_variable函数.我收到的错误是cannot convert parameter from my_class* to my_class*&,使用VS2010.
为什么不允许这样做?
class my_class
{
public:
my_class();
my_class(my_class* &parent);
};
Run Code Online (Sandbox Code Playgroud)
-
int main()
{
my_class a;
my_class b(&a); // Not legal
// ---
my_class a;
my_class* a_ptr = &a;
my_class b(a); // Legal
// ---
my_class* a = new my_class;
my_class* b = new my_class(a); // Legal
}
Run Code Online (Sandbox Code Playgroud)
Ker*_* SB 10
表达式地址的结果是右值.因此,您无法将其绑定到reference-to-nonconst.
这也没有意义.这就像说int a; &a = 12;明显你不能改变变量的地址a.
相反,你想要这个:
int a;
int * p = &a;
mutate_me(p); // declared as mutate_me(int * &);
Run Code Online (Sandbox Code Playgroud)
如果函数不是需要突变的指针,由常量-引用或值要么通过.
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |