PDA

Visualizza la versione completa : [C++] Abstract e funzioni "typedef"


ciofx
17-01-2011, 10:54
Con riferimento a: LINK (http://forum.html.it/forum/showthread.php?threadid=1441465)


Come si può fare una cosa del genere,
dato che un template <typename tipo> non può essere virtual?



// figuraabstract.cpp/h
class FiguraAbstract { public: virtual ??????? get() = 0; }

// cerchio.cpp/h
typedef struct tipo_s{ kkk c1, jjj c2, ... }tipo;
class Cerchio : FiguraAbstract { public: tipo get() { return tipo; }; }

// triangolo.cpp/h
typedef struct tipo_s{ xxx t1, yyy t2, ... }tipo;
class Triangolo : FiguraAbstract { public: tipo get() { return tipo; }; }

// figura.cpp/h
#ifdef cerchio
#include cerchio.h
class Figura:public cerchio{};
#elseif triangolo
#include triangolo.h
class Figura:public triangolo{};
#else
...
#endif


:spy:

ciofx
19-01-2011, 10:49
Nessuno? :dhò:

shodan
19-01-2011, 13:34
Mostra un codice più dettagliato.
Comunque in linea di principio devi restituire un classe base in cui eventualmente fare un downcasting.

Il problema comunque non riguarda il template in se: in C++ non si possono effettuare overload sul tipo di ritorno.

Loading