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)?
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)?
次のように逆参照する必要があります。func(*x)
ポインターを参照解除し、次のように渡します。
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);
いずれの場合も、同じ方法で関数を呼び出します。