Некоторые из методов, которые я вижу в коде 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; class-> метод1 (а); ? Это кажется запутанным.
Спасибо.
Просто, чтобы дать вам о чем подумать. Как вы думаете, что означает «int * &» или «int **»? В чем разница и где это может быть полезно. – dowhilefor
во втором случае 'class2-> method2 (NULL);' допустимо. Это главное отличие. – andre