¿Cómo puedo pasar un puntero (Object *ob
) a una función cuyo prototipo es void foo(Object &)
?Cómo convertir/convertir el puntero a referencia en C++
Respuesta
llamada así:
foo(*ob);
Tenga en cuenta que no hay fundición pasando aquí, como se sugiere en el título de la pregunta. Todo lo que hemos hecho es desviar el puntero al objeto que luego pasamos a la función.
@Ricobob Eso es lo que sucede en SO muy a menudo. Las respuestas a preguntas simples que se pueden entender fácilmente a menudo obtienen muchos votos positivos. Las respuestas largas y complejas a las preguntas engañosas a menudo obtienen pocos votos favorables porque los votantes no pueden juzgar fácilmente el mérito. En cuanto a rep, no obtuve nada sobre esto debido a rep cap. ;-) Pero sinceramente estoy de acuerdo. Ojalá respuestas complejas obtuvieran más representantes. –
@DavidHeffernan Sí, este parece ser el problema, creo que es un problema para MetaSO, si alguien no lo ha planteado allí. – Ricibob
@ricobob Espero que ya se haya planteado. –
foo(*ob);
adivinar y agregar muchas ... por lo general no es el formato de una buena respuesta aquí (aunque es correcto en este caso), esa es probablemente la razón por la que obtienes un voto negativo. – KillianDS
bhhaaa, agregué el "supongo" porque me hizo escribir al menos 30 caracteres. esa es también la forma en que agrego el "..........." –
@RoeeGavirel Soy su primer votante porque sentí que el voto negativo es duro. FWIW puedes superar el límite de 30 caracteres pero agregar un comentario HTML que hice en mi primera versión de la respuesta! Mi edición de tu respuesta muestra cómo. –
Ejemplo completo para la fundición de puntero al objeto
class myClass
{
public:
void sayHello()
{
cout << "Hello";
}
};
int main()
{
myClass* myPointer;
myClass myObject = myClass(* myPointer); // Cast pointer to object
myObject.sayHello();
return 0;
}
Me sorprende que en líneagdb funcione con esto, ya que hay muchos problemas aquí. En primer lugar, myPointer no está inicializado, ¿dónde está el 'new myClass()'? En segundo lugar, la línea marcada como '// Cast puntero al objeto' lo hace y luego hace un montón de copias. Construir otro myClass desde el puntero sin inicializar desreferenciado y luego (dependiendo del compilador) cuando se asigna a myClass myObject. –
- 1. Referencia a un puntero
- 2. Convert "esto" a una referencia a puntero
- 3. iterador frente a referencia frente a puntero
- 4. C++ puntero del vector de problema/referencia
- 5. Puntero a un puntero en objetivo-c?
- 6. referencia a un puntero dentro de un puntero estructura
- 7. C++ pasar argumentos por referencia y el puntero
- 8. Puntero C++ (Pase por referencia) Pregunta
- 9. No permitir tomar puntero/referencia a const a un objeto temporal en C++ (sin C++ 0X)
- 10. Agregue el puntero C a NSMutableArray
- 11. Objetos de C++: ¿Cuándo debo usar el puntero o referencia
- 12. Diferencia entre el puntero en C++ y el tipo de referencia en C#
- 13. Cómo comparar puntero a cadenas en C
- 14. ¿Por qué el puntero "this" en C++ es un puntero y no una referencia?
- 15. C++ Pase el puntero a la función (Cómo) + Manipulación del puntero C++
- 16. Pasando el argumento del puntero por referencia bajo C?
- 17. Puntero a cadena const en C
- 18. Puntero a vacío en C++?
- 19. ¿Cómo funciona el puntero a punteros en C?
- 20. Alias de puntero estricto: ¿es el acceso a través de un puntero/referencia 'volátil' una solución?
- 21. ¿Cuándo devolver un puntero, escalar y referencia en C++?
- 22. C#: Puntero a duplicar
- 23. C++ borrar un puntero a un puntero
- 24. ¿Se puede tratar el puntero a la referencia y el puntero a la variable real de la misma manera?
- 25. ¿Cómo paso un puntero a una función c en Cython?
- 26. puntero vs. Referencia
- 27. Motivo para pasar un puntero por referencia en C++?
- 28. ¿Cómo trabajar con el puntero al puntero a la estructura en C?
- 29. C++: La inicialización del puntero a puntero a int
- 30. C/C++ Puntero Pregunta
El título dice "echar [sic] referencia a puntero" pero la pregunta comienza con un puntero y necesita una referencia. ¿Qué dirección es? – MSalters
@MSalters debe ser * convert *. Lo estoy editando. Pero estaba buscando cualquier solución que obtuviera, así que mencioné * cast * – Dewsworld