Как я могу отправить указатель на функцию со ссылкой? Я имею в виду, я хотел бы изменить положение указателя в этой функции.
Я видел для этого двойной указатель, например:
Abc* p;
function(&p);
function(Abc** p){
(*p) = 0;
}
Но мне сказали, что это не лучший способ приблизиться к этому. Как может быть лучше? Будет ли это работать? :
Abc* p;
function(p);
function(Abc* p){
p = 0;
}
Спасибо
Нет, это не сработает. Это скопирует значение p
в функцию, а затем только изменить эту копию.
Наиболее подходящий способ передачи чего-либо по ссылке в C ++ — это использование ссылочного типа. Они обозначены амперсандом в шрифте. Вы можете взять ссылку на указатель:
Abc* p;
function(p);
void function(Abc*& p){
p = 0;
}
Это означает, что, даже если вы прошли p
напрямую, это не скопировал в функцию. p
аргумент ссылка к объекту, переданному в.
Других решений пока нет …