Как преобразовать указатель на ссылку в С++

Как передать указатель (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;
}