Как передать указатель (Object *ob
) функции, прототип которой void foo(Object &)
?
Как преобразовать указатель на ссылку в С++
Ответ 1
Назовите его следующим образом:
foo(*ob);
Обратите внимание, что здесь нет кастингов, как указано в заголовке вопроса. Все, что мы сделали, де-ссылку указатель на объект, который мы затем передаем функции.
Ответ 2
foo(*ob);
Вам не нужно бросать его, потому что он тот же тип объекта, вам просто нужно разыменовать его.
Ответ 3
Полный пример для указания указателя на объект
class myClass
{
public:
void sayHello ()
{
cout << "Hello";
}
};
int main ()
{
myClass* myPointer;
myClass myObject = myClass(* myPointer); // Cast pointer to object
myObject.sayHello();
return 0;
}