一些我在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