View Full Version : [C++] costruttore classe derivata
wizard_at
18-09-2008, 13:13
ciao a tutti.
Mi scuso anticipatamense se il mio linguaggio non e' consono alla programmazione.
Il mio problema consiste (detto in parolaccie) nel fatto che non so come e se posso creare una classe derivata riscrivendo il costruttore che originariamente riceveva un parametro.
detto in codice:
class mamma
{
public:
mamma (int a);
int b;
}
//scrivo cosi' perche' nel mio programma si trovano in 2 file separato ( *.h *.cpp
mamma::mamma(int a)
{
b=a;
}
class figlio : public mamma
{
figlio //e qui non so cosa fare...
}
voglio che il figlio rifaccia cio' che faceva mamma e ne aggiunga un pezzo.
ciao , grazie a tutti
l'unica parolaccia che leggo in quel post è "parolaccie".
comunque:
#include <iostream>
using namespace std;
class mamma
{
public:
mamma(int lal)
{
cout << lal << endl;
}
};
class figlio : public mamma
{
public:
figlio(int lal, int lol) :
mamma(lal)
{
cout << lol << endl;
}
};
int main()
{
figlio(1, 2);
return 0;
}
wizard_at
18-09-2008, 13:29
l'unica parolaccia che leggo in quel post è "parolaccie".
grazie
in forma esplicita e'?
figlio::figlio(int a, int b):mamma(int a)
{
;
}
wizard_at
18-09-2008, 13:47
e se non volessi aggiungere un argomento a figlio???
e se non volessi aggiungere un argomento a figlio???
Dipende da quale significato specifico ha l'intero che passi a mamma.
wizard_at
18-09-2008, 18:22
Dipende da quale significato specifico ha l'intero che passi a mamma.
in realta' non non sto passando un intero ma un puntatore IrrlichtDevice.
in realta' non non sto passando un intero ma un puntatore IrrlichtDevice.
Da qualche parte questo puntatore lo dovrai passare al figlio per inizializzare mamma.
wizard_at
18-09-2008, 18:36
esatto
lavoro con file *.h(qui le classi) e file *.cpp (qui le funzioni)
il mio codice' e' pressapoco questo:
file fasi.h
class fasi
{
public:
fasi(IrrlichtDevice* de);...
}
file fasi.cpp
fasi::fasi(IrrlichtDevice* de){
//codice
}
file menu.h
class menu : public fasi
{
public:
menu(IrrlichtDevice* de);
}
file menu.cpp
menu::menu(IrrlichtDevice* de){
//codice
}
e' corretto? non credo perche' mi da errore.
class menu : public fasi
{
public:
menu(IrrlichtDevice* de):fasi(de);
}
Esattamente come nell'esempio della classe figlio.
wizard_at
18-09-2008, 18:55
EDIT: passo aventi per chiarire meglio
funziona se scrivo cosi':
class meno : public fasi
{
public:
meno(IrrlichtDevice* dev):fasi(dev){
device = dev;
rcv= new menureceiver(device);
device->setEventReceiver(rcv);
driver = device->getVideoDriver();
smgr = device->getSceneManager();
guienv = device->getGUIEnvironment();
images = driver->getTexture("media/menu.png");
guienv->addButton(rect<s32>(290,150,360,190), 0, 101, L"Gioca");
guienv->addButton(rect<s32>(290,210,360,250), 0, 102, L"Info");
guienv->addButton(rect<s32>(290,270,360,310), 0, 103, L"Esci");
}
....
come faccio a separare i due pezzi?
wizard_at
18-09-2008, 19:16
RISOLTO!!!
class figlio : public mamma
{
public:
figlio(anni* x);
...
}
figlio::figlio(anni* x):mamma(anni){
//codice
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.