一些我在C++代碼中看到的是這種結構的方法:如何傳遞參數輸出在C++
void Class::method1(int &a);
,被稱爲像這樣:
int a;
class->method1(a);
但有時我看到結構像:
void Class2::method2(int* a);
而且這些方法被稱爲是這樣的:
int a;
class2->method2(&a);
據我所知,在第一種情況下,該方法接受變量的地址,在第二個指向變量的指針中,對嗎?
有人可以向我解釋這兩種方法之間有什麼區別,什麼時候使用哪種方法?另外,在第一個例子中,似乎一個方法可以採用「int & a」或「int a」,並且在這兩種情況下我們都會以同樣的方式調用它:int a;類 - >方法1(a)的?這似乎令人困惑。
謝謝。
只是給你一些想法。你認爲「int *&」或「int **」是什麼意思?有什麼區別,以及這可能有用。 – dowhilefor
在第二種情況'class2-> method2(NULL);'是可以接受的。這是主要區別。 – andre