Du bist nicht angemeldet.

Werbeanzeige

Montana

Frischling

  • »Montana« ist der Autor dieses Themas

Beiträge: 6

Beruf: Medieninformatik-Student

  • Private Nachricht senden

1

26.02.2006, 16:16

Wie ist diese "Übung" am Ende v. Kap.7 gemeint?

Ich verstehe nicht genau, was mit dem abschließenden Satz in Kapitel 7 konkret gemeint ist. Dort heisst es ja, man könnte sich eine Zugriffsfunktion für die statische Membervariable schreiben und sich somit eine kontrollierte Schnittstelle erzeugen. Auch wenn dahinter was Triviales stecken mag, wäre ne kurze Erläuterung, wie das zu verstehen ist bzw. ein kleiner "Denkanstoss" nett! ;)
"The software business is binary. You're either a one or a zero, alive or dead."

2

04.11.2009, 14:19

Das habe ich unter der Aufgabe verstanden

Unter der Aufgabe habe ich verstanden, das die statische Variable in den "protected/private" Teil der Klasse soll, damit man nicht mehr von extern zugreifen kann (kontrollierter Zugriff).

Meine Lösung wie folgt. Killed mich nicht gleich ;) ich bin neu :)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//Listing7.15_2

//Überprüfung Memoryleak mittels Zugriffsfunktionen

//

#include <iostream>
using namespace std;

//Klassen

//

class CRaumschiff
{
protected:
    //Membervariablen

    int m_Farbe;
    int m_Energie;
    
    // statische Membervariablen

    static int m_Zaehler;
    

public:
    //Memberfunktionen

    CRaumschiff();
    ~CRaumschiff ();
    
    //statische MemberFunktion

    static void NullZaehler();
    static void InstanzenZaehler();
};

//Konstruktor

//

CRaumschiff::CRaumschiff()
{
    m_Farbe = 0;
    m_Energie = 1000;
    m_Zaehler++;

    cout << "Anzahl der Raumschiffe: " << m_Zaehler << endl;
}

//Destruktor

//

CRaumschiff::~CRaumschiff ()
{
    m_Zaehler--;

    cout << "Anzahl der Raumschiffe: "<< m_Zaehler << endl;
}

// Der Instanzen Zähler wird auf Null gesetzt

//

void CRaumschiff::NullZaehler()
{
    m_Zaehler = 0;
    cout << "Zaehler auf " << m_Zaehler << endl;
}
// Überprüfung ob ein Memoryleak vorhanden ist

//

void CRaumschiff::InstanzenZaehler()
{
    if (m_Zaehler != 0)
    {
        cout << "MemoryLeak " << endl;
        cout << "Zaehler: " << m_Zaehler << endl;
    }
    else
    {
        cout << "Kein MemoryLeak " << endl;
        cout << "Zaehler: " << m_Zaehler << endl;
    }
}

//Definition der statischen Membervariablen

int CRaumschiff::m_Zaehler;

//Hauptprogramm

//

int main()
{
    //Variablen

    //

    CRaumschiff *Schiffe = NULL;
    int Anzahl = 0;

    //Instanzenzaehler auf Null

    Schiffe->NullZaehler(); 

    cout << "Wieviele Raumschiffe erstellen: ";
    cin >> Anzahl;

    // Prüfen ob es mindestens ein Raumschiff gibt

    if (Anzahl < 2)
        Anzahl = 1;

    //Raumschiffe erzeugen

    Schiffe = new CRaumschiff[Anzahl];

    //Raumschiffe löschen

    delete[] Schiffe;
    Schiffe = NULL;

    //Überprüfung ob ein Memoryleak vorhanden ist

    Schiffe->InstanzenZaehler();
    
    return 0;
}[cpp]
[/cpp]

Sizzla

Frischling

Beiträge: 72

Wohnort: Klagenfurt

  • Private Nachricht senden

3

06.11.2009, 00:42

kontrollierter Zugriff bedeutet dass du dir eine öffentliche Funktion schreibst wodurch du die Variablen ändern kannst.
Somit hast du private Variablen aber kannst sie trotzdem ändern wo es nötig ist.

Lies dir das Thema Private Membervariablen (seite 190) nochmal durch, da steht alles ganz genau ;)
Künstliche Intelligenz ist leichter zu ertragen als natürliche Dummheit !
--------------------------
http://www.kasser-manuel.com

Sizzla

Frischling

Beiträge: 72

Wohnort: Klagenfurt

  • Private Nachricht senden

4

08.11.2009, 03:27

Wieso gräbst du einen fast 4 Jahre alten Thread aus...?!
Künstliche Intelligenz ist leichter zu ertragen als natürliche Dummheit !
--------------------------
http://www.kasser-manuel.com

5

08.11.2009, 16:19

wie gesagt ein neuling
hat sicher im archiv gewühlt und dann geguckt was
er vielleicht schon beantworten kann eigentlich keine
schlechte idee, aber vorher mal aufs datum schauen
Gewinnen ist, wenn man einmal mehr aufsteht, als man zu Boden geht.

Werbeanzeige