Pitanje u vezi C++ -a

M

ModProbe

Gost
Poceo sam da ucim C++ i eto vec sam naisao na problem u vezi klasa. U pitanju su konstruktori i destruktori. Inace koristim gcc sa ISO C++ standardom, i u sustini ako bi klasa imala ime proba, onda bi proba() i ~proba() trebalo da budu constructor i destructor. Tako pise i u svim tuorialima i knjigama koje imam. Medjutim, kompajler mi prijavljuje gresku da nije zadat tip funkcije kod konstruktora i destruktora, a koliko je meni poznato tip kod njih i ne treba da postoji. Probao sam sve uobicajene tipove kao sto su void, int itd. ali nista ne pali, a nigde ne mogu da nadjem resenje.
Bio bih zahvalan da neko odgovori.
 
Konstruktor i destruktor nisu klasicne funkcije u tom smislu da ne vracaju vrednosti(znaci nema return),i trebaju ti viticaste zagrade.Ako ih ne definises(con.i des.) kompajler ih definise da kazemo po "default"-u(barem na Borlandu).
Evo ti prost primer:
class m
{
public:
int X;
m() //default cons.
{}
m(int a):X(a) //koji ti odgovara
{}
};
 
ModProbe:
u sustini ako bi klasa imala ime proba, onda bi proba() i ~proba() trebalo da budu constructor i destructor.

Tačno tako. Imaj u vidu da je C++ case-sensitive jezik i da Proba i proba nije isto!

Takođe, ako ti implementacija nije inline (unutar deklaracije klase), ne smeš da zaboraviš "domen":

Kod:
class Proba
{
public:
    Proba();
    ~Proba();
};

Proba::Proba()
{
    // ovde ide kod za konstruktor.
}

Proba::~Proba()
{
    // ovde ide kod za destruktor.
}
 

Back
Top