PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : noob ->heap problem



Mat
03-10-2005, 17:51
Hallo,
ich habe folgendes Problem:

warum funktioniert folgender code nicht?



Class1::method1()
{
int *a = new int;
*a = 4;
}

Class1::method2()
{
std::cout << *a << std::endl;
delete a;
}


Ich will nur ganz einfach eine Variable solange auf den Heap legen und dann wieder löschen ....geht das nicht so? wie kann ich den in der method2() die variable von method1() lesen ????

Danke

anda_skoa
03-10-2005, 18:19
a ist eine lokale Variable von method1() und daher nur dort bekannt.

Du mußt a zu einem Member der Klasse machen, d.h.



class Class1
{
public:
Class1();
~Class1();

void method1();
void method2();

private:
int* a;
};

Class1::Class1() : a(0)
{
}

Class1::~Class1()
{
delete a;
}

Class1::method1()
{
if (a == 0) a = new int;
*a = 4;
}

Class1::method2()
{
if (a != 0) std::cout << *a << std::endl;

delete a;
a = 0;
}


Ciao,
_