Anzeige:
Ergebnis 1 bis 2 von 2

Thema: noob ->heap problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749

    noob ->heap problem

    Hallo,
    ich habe folgendes Problem:

    warum funktioniert folgender code nicht?

    Code:
    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

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    a ist eine lokale Variable von method1() und daher nur dort bekannt.

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

    Code:
    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,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •