2013-10-04 53 views
1

如果我是在堆上聲明一個對象像這樣:在堆上聲明對象,然後通過引用傳遞它?

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

void func(X& x); 

如何傳遞在xfunc()以便func()可接收參考x(而不是指針)?

+0

你想在這裏找到兩個以上的答案嗎?它看起來像你知道如何問,但不知何故忘記了如何接受。我建議您對所有問題進行審覈。 –

回答

4

你必須取消對它的引用,像這樣:func(*x)

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); 

爲你調用的函數以相同的方式每一種情況下。