2

If I was to declare an object on the heap like so:

X* x = new X();
func(?);

void func(X& x);

How can I pass x in to func() so that func() can receive a reference to x (and not a pointer)?

4

2 に答える 2

4

次のように逆参照する必要があります。func(*x)

于 2013-10-04T21:49:31.833 に答える
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);

いずれの場合も、同じ方法で関数を呼び出します。

于 2013-10-04T21:50:36.220 に答える