Я хочу передать объект-указатель функции по ссылке. Я не знаю, если я делаю правильно, так как он не работает в соответствии с приведенным ниже кодом. Пожалуйста, помогите мне.Ссылка на указатель на C++
class Base
{
public:
int x;
void print()// function prints x value
{
cout<<x;
}
void call_print(Base **base) //function call print function
{
base->print();
}
};
int main()
{
Base *b = new Base; // creating pointer object
b->call_print(&b); // passing pointer by reference
return 0;
}
1) это не ссылка, но указатель на указатель 2) в любом случае, не требуется, если вы не хотите изменить то, на что указывает, и 'base-> print' не будет работать с' Base ** '3), почему даже использовать' new' (и вы все равно не «удаляете»). – crashmstr
Удалите одну звездочку в объявлении 'call_print':' void call_print (Base * base) '. Также вызовите 'b-> call_print (b)' в 'main' функцию. –
Если вы на самом деле намерены использовать двойной указатель: if (base) {(* base) -> print(); } – dwn