[ Fidelito_Castro @ 20.04.2008. 01:08 ] @
Kako da implementiram u konstruktoru kopije, da objekat koji se inicijalizuje drugim objektom iste klase
(pomocu konstruktora kopije),ima podatak tipa pointer - odnosno da pokazuje na razliciti deo u heap memoriji.
Evo primera:
Code:

/* Konstruktor kopije za pointer na tip double  */
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>

using namespace std;

//Definicija klase Racun
class Racun
{
    private:
        short* broj_racuna;
    public:
        Racun(short br_racuna = 0);
        Racun(const Racun& );
        ~Racun();
         const short* Get_num()    const;
};
//Konstruktor
Racun::Racun(short br_racuna)
{
    broj_racuna = new short (br_racuna);

}
//Konstruktor kopije
Racun::Racun(const Racun& c_objekat)
{
    broj_racuna =c_objekat.broj_racuna;    // da li je dobro??????
}
//Destruktor
Racun::~Racun()
{
    delete broj_racuna;
}
const short* Racun::Get_num()    const
{
    return broj_racuna;
}
int main(void)
{
    Racun rac1(5);
    Racun rac2 = rac1;

    const short* s_p,
               * s_p2;

    s_p = rac1.Get_num();

    cout<<"Broj racuna,objekta rac1: "<<*s_p<<endl;

    s_p2 = rac2.Get_num();

    cout<<"Broj racuna, objekta rac2: "<<*s_p2 <<endl;


    system("PAUSE");
    return EXIT_SUCCESS;

}


Unapred zahvalan!
[ 1jedini @ 20.04.2008. 10:58 ] @
Code:

//Konstruktor kopije
Racun::Racun(const Racun& c_objekat)
{
 broj_racuna = new short (c_objekat.broj_racuna);
}

[ _Doctor_ @ 20.04.2008. 17:44 ] @
Code:

//Konstruktor kopije
Racun::Racun(const Racun& c_objekat)
{
 broj_racuna = new short ( *c_objekat.broj_racuna );
}


Ahm, chini mi se da fali zvezda :)