Ho una funzione con void * come uno dei suoi parametri (il vuoto è usato come un oggetto generico). Ma per poter chiamare una funzione in quell'oggetto generico, ho bisogno di lanciarlo prima, e per questo ho bisogno di sapere che tipo è la classe. E volevo sapere, è possibile passare una classe o qualche informazione che mi permetta di lanciare l'oggetto come parametro di funzione?È possibile passare una classe come parametro a una funzione in C++?
risposta
Per caso hai esaminato lo Templates?
Un esempio potrebbe essere qualcosa come
class SomeClass
{
public:
template<typename CastClass>
void DoSomething(void* someArg)
{
(CastClass)someArg;
}
};
Usage:
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.
Ma ho bisogno che quella funzione si trovi in una classe, e non posso rendere quella classe un modello – XaitormanX
@XaitormanX: Vedi l'esempio aggiornato – josephthomas
Grazie. E come sarebbe usato? – XaitormanX
- 1. C++ Passare una classe come parametro
- 2. Passare una proprietà di classe come parametro
- 3. Come passare un parametro di chiusura opzionale a una funzione?
- 4. Passare una funzione con parametri come parametro?
- 5. Passare una funzione generica come parametro
- 6. Passare una funzione come parametro modello esplicito
- 7. Come passare una stringa a una funzione in Objective-C
- 8. Passare una funzione (con parametri) come parametro?
- 9. Come passare un array bidimensionale a una funzione in C++
- 10. È possibile passare classi derivate facendo riferimento a una funzione che prende la classe base come parametro
- 11. È possibile passare una chiusura a usort in PHP?
- 12. Come passare una funzione come parametro in Lua?
- 13. MATLAB: come posso passare un parametro a una funzione?
- 14. è possibile passare stringstream come parametro di funzione?
- 15. Passare una funzione di richiamata a un'altra classe
- 16. Come passare un puntatore a una funzione c in Cython?
- 17. Come posso passare un evento a una funzione in C#?
- 18. Passa una classe come parametro?
- 19. passare una funzione come parametro e quindi eseguirla in una funzione jquery
- 20. È possibile associare il secondo parametro di una funzione lambda?
- 21. Come passare una funzione a una funzione? i funtori/oggetti funzione sono disponibili in VB2010?
- 22. Come posso passare un parametro ad una funzione ng-clic?
- 23. C++: come passare da riferimento a funzione in un'altra funzione?
- 24. è possibile assegnare una funzione a una variabile di classe in fase di runtime in php?
- 25. Passare un puntatore a una funzione membro della classe come parametro
- 26. Come passare una lista a una funzione in R?
- 27. È possibile utilizzare una funzione lambda per un parametro template?
- 28. È possibile sostituire una funzione all'interno di una classe PHP?
- 29. È possibile avere una funzione (-name) come parametro template in C++?
- 30. È possibile estendere una funzione in TypeScript?
sono il proprietario della funzione di ottenere void * come un parametro o è parte di un'API esterna? –
Sono il proprietario della funzione – XaitormanX
In genere è una pessima idea fornire una funzione con void * come input. Ci sono modi migliori per ottenere un comportamento generico: usare template o ereditarietà. Dovresti riconsiderare il tuo design. –