Tengo una función con void * como uno de sus parámetros (el vacío se usa como un objeto genérico). Pero para poder invocar una función en ese objeto genérico, necesito lanzarlo primero, y para eso necesito saber qué tipo es la clase. Y quería saber, ¿es posible aprobar una clase o alguna información que me permita convertir el objeto como un parámetro de función?¿Es posible pasar una clase como parámetro a una función en C++?
Respuesta
¿Ha visto alguna vez Templates?
Un ejemplo podría ser algo como
class SomeClass
{
public:
template<typename CastClass>
void DoSomething(void* someArg)
{
(CastClass)someArg;
}
};
Uso:
class A{ }; // Some random test class
SomeClass test;
A a;
test.DoSomething<int>(&a); // The template parameter can be anything.
// I just have int to make it a smaller example.
Pero necesito que esa función esté dentro de una clase, y no puedo hacer que esa clase sea una plantilla – XaitormanX
@XaitormanX: Vea el ejemplo actualizado – josephthomas
Gracias. ¿Y cómo se usaría? – XaitormanX
- 1. C++ Pasar una clase como parámetro
- 2. ¿Pasar una función como parámetro en jQuery?
- 3. Pasar una función con parámetros como parámetro?
- 4. Pasar una función genérica como parámetro
- 5. Pasar una matriz como un parámetro de función en C++
- 6. ¿Cómo pasar una propiedad genérica como parámetro a una función?
- 7. ¿es posible pasar stringstream como parámetro de función?
- 8. Bash: pasar una función como parámetro
- 9. Ventajas de pasar una función como parámetro
- 10. Pasar una función (con parámetros) como parámetro?
- 11. ¿Es posible pasar cout o fout a una función?
- 12. ¿Es posible pasar clases derivadas por referencia a una función que toma la clase base como un parámetro
- 13. Pasar una matriz como argumento a una función en C
- 14. Pasar una variable JSP como parámetro a la función javascript
- 15. Pasar una propiedad de clase como un parámetro
- 16. JavaScript: ¿Cómo pasar una función anónima como parámetro de función?
- 17. ¿Pasa una clase como parámetro?
- 18. pasar una matriz como un parámetro de función en JavaScript
- 19. Python: ¿Pasar un nombre de clase como parámetro a una función?
- 20. ¿Es posible pasar un XDocument como parámetro a una acción en ASP.NET MVC?
- 21. ¿Es posible pasar parámetros a una máscara?
- 22. C++ pasar enumeración como parámetro
- 23. pasar una función como un parámetro y luego ejecutarlo en una función jquery
- 24. Pasar una clase Delphi a una función/método C++ que espera una clase con __thiscall methods
- 25. ¿Es posible tener una función (-name) como parámetro de plantilla en C++?
- 26. ¿Es posible pasar "esto" como parámetro implícito en Scala?
- 27. Cómo pasar una matriz bidimensional a una función en C++
- 28. Pasar una función como un parámetro de plantilla explícita
- 29. Pasar una propiedad como un parámetro 'out' en C#
- 30. Pasar una clase genérica a una función java?
¿Es el propietario de la función de conseguir void * como un parámetro o es parte de una API externa? –
Soy el propietario de la función – XaitormanX
Por lo general, es una muy mala idea proporcionar una función con void * como entrada. Hay una manera mejor de lograr un comportamiento genérico: usar plantilla o herencia. Deberías reconsiderar tu diseño. –