如果我要这样在堆上声明一个对象:
X* x = new X();
func(?);
void func(X& x);
如何将x
传递给func()
,以便func()
可以接收对x
(而不是指针)的引用?
答案 0 :(得分:4)
你必须像这样取消引用它:func(*x)
答案 1 :(得分:3)
取消引用指针并将其传递给它:
func(*x);
您的函数必须传递X类型的东西。传递传递对象的事实不会改变您调用它的方式。由于x具有X *类型,因此需要取消引用x以获得X类型的内容。
为了说明,假设你有
void func1(X& x);
void func2(const X& x);
void func3(X x);
void func4(const X x);
对于每种情况,您都会以相同的方式调用这些函数。