PDA

Visualizza la versione completa : [c++ e systemC] domanda su classi


kangaxx
14-04-2010, 20:44
Ciao a tutti,

sono nuovo e mi sono appena iscritto.
Complimenti per l'ottimo forum e penso sia il posto adatto per risolvere qualche dubbio che mi assilla.

La mia domanda riguarda il c++ e più in particolare sulla libreria SystemC .

ho visto che programmando con questa libreria posso usare la macro SC_MODULE per istanziare un nuovo modulo in questo modo:

1. SC_MODULE(nome_modulo){...};

ho inoltre visto che equivale a scrivere:

2. class nome_modulo : public SC_MODULE {...};

La domanda che mi pongo è, questo "modo" di creare un nuovo modulo è praticamente la creazione di una classe derivata che eredita in modo public la classe SC_MODULE, è possibile farlo anche per altre classi normali in c++ o è un cosa che posso fare solo con questa libreria perchè evidentemente è insista in essa ?

Ultima cosa, dentro SC_MODULE si deve usare anche SC_CTOR. valgono gli stessi discorsi di SC_MODULE per quanto riguarda la possibile scrittura (1.) ?

Grazie a tutti e a chiuque potrà risolvere questo mio dubbio.
Filippo

shodan
14-04-2010, 21:10
è una cosa che posso fare solo con questa libreria perchè evidentemente è insista in essa ?

Questo. Tra l'altro (personalmente) trovo quella macro orripilante.

kangaxx
14-04-2010, 21:41
umh scusa ma non ho capito.

puoi farlo solo con suddetta libreria ?

la stessa cosa vale anche per SC_CTOR(nome_modulo) ? che può essere scritta class nome_modulo : public SC_CTOR ?

Grazie!

shodan
14-04-2010, 22:12
Sono macro definite in quella libreria, quindi possono essere usate solo in quella libreria.
Il C++ di per se non ha niente del genere.

kangaxx
14-04-2010, 23:08
Grazie.
Lo so che c++ di per se non ha queste cose.

Il mio dubbio era appunto sulla sintassi.

In c++ :

class nomeclasse : public classebase

non si può scrivere:

classebase(nomeclasse)

giusto?

Era questo il dubbio.

MItaly
14-04-2010, 23:20
No, in C++ per dichiarare una classe che eredita da un'altra c'è solo la sintassi


class nomeclasse : modificatore-accesso classebase

dove modificatore-accesso può essere public, protected o private e determina la visibilità dei membri ereditati; se è omesso viene inteso come private per le classi e public per le strutture.

kangaxx
16-04-2010, 17:01
grazie a tutti.

MItaly
16-04-2010, 20:57
:ciauz:

Loading