編輯:對於愚蠢的標題感到抱歉;通過「指針對象」我想我的意思是解引用的對象指針(如果這是任何澄清)。爲什麼你不能在指針對象上調用函數?
我是新來的C++,我一直在嘗試習慣它的特性(來自Java)。
我知道這通常不是必要的,但我想嘗試通過它的指針傳遞一個對象。當然,它的工作原理,但我也期待這個工作:
void test(Dog * d) {
*d.bark();
}
而事實並非如此。爲什麼是這樣?我發現我可以做到以下幾點:
void test(Dog * d) {
Dog dawg = *d;
dawg.bark();
}
它的工作完美無瑕。這對我來說似乎是多餘的。
任何澄清,將不勝感激。謝謝!
重要的答案。感謝大家。我不知道你可以用括號將*狗分開。 – ICoffeeConsumer
編輯我的答案,亞歷克斯;希望它澄清你可以做這樣的事情的原因:) – WendiKidd
@Alex Reidy:稍微不相關..但請注意'Dog dawg = * d;'會創建傳遞的'd'對象的*副本*。所以'bark'將被複制的對象調用,而不是'd'。 – Naveen