Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

1

21.07.2006, 23:27

Frage zur Vererbung!

Hi
Ich hab für das Spiel HL2 eine Mod gemacht und hatte mich eine Zeitlang mit den Waffen/Spieler beschäftigt und mir ist auf gefallen das Leben/Armor und die größe des Primär und Sekundärmunition vererbt wurden.

Aber wie kann man Member vererben?

Muss ich sie dazu public setzen?
Aber das wäre ja nicht sehr sinnvoll :(

Wenn jemand ein kleines Beispiel hat dann wäre ich dankbar ;)
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Anonymous

unregistriert

2

21.07.2006, 23:29

public, private, protected sind die Rechteschlüssel
Dann gibt es noch public, private und protected Vererbungen, die diese Rechteschlüssel "vertiefen".

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

3

21.07.2006, 23:32

hmm okay also sollte ich z.b. die Variablen private setzen und jeder Childklasse dann die private vewrerben oder? aber da komme ich nicht ran oder? sollte OOP für Dummies mal nachlesen dazu ;)

Okay hab darüber keinen Zugriff :( bräuchte ich aber :(
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Anonymous

unregistriert

4

21.07.2006, 23:37

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
class A
{
public:
    void foobar (void)
    {
        x = 0;
        y = 0;
        z = 0;
    }



    // RECHTESCHLÜSSEL GEORDNET NACH PRIVILEGIEN

public:
    int x;

protected:
    int y;

private:
    int z;
};

class B : public /* protected private */ A
{
public:
    void foobar2 (void)
    {
        x = 0;
        y = 0;
        z = 0;
    }
};


Rumprobieren

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

5

21.07.2006, 23:42

Alles klar ;) werd mal heute und morgen damit rumbasteln :)
Wenn ich neues Spielzeug brauch sag ich bescheid :D
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

6

27.07.2006, 10:00

Okay hab jetzt damit rumgespielt!

Ich kann eigentlich nur public vererben.
Aber da ich einen Basisklasse(Abstrakt) habe kann man doch die Member der erbenden Klasse public erreichen oder?
D.h. man hat zugrief auf diese Variablen über normale Funktionen usw.
Aber sollte ich sowas nicht meiden?

Edit
Hier ist mal ein Beispiel in der dbox:
Basisklasse:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef Main_Class_h
#define Main_Class_h

class CMainClass
{
 public:
        
 //Methoden:

 virtual void SetHealth(int)=0;
 virtual int GetHealth()=0;
 
 int m_iHealth;
};


#endif //Main_Class_h


Childklasse

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef Child_Class_H
#define Child_Class_H

#include "Main_Class.h"

class CChildClass : public CMainClass
{
 public:
        
 CChildClass(){m_iHealth=0;}
 virtual ~CChildClass(){}
 
 //Methoden:

 virtual void SetHealth(int Health){m_iHealth=Health;}
 virtual int GetHealth(){return m_iHealth;}
};

#endif //Child_Class_H


Main

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
#include <cstdlib>
#include <iostream>

#include "Child_Class.h"

using namespace std;

int main(int argc, char *argv[])
{   

    CChildClass MyObj;
    
    MyObj.SetHealth(10);
    
    //Das ist IO!

    cout<<MyObj.GetHealth()<<endl;
    
    //Das soll nicht sein!

    cout<<MyObj.m_iHealth<<endl;
    
    system("PAUSE");
    
    return EXIT_SUCCESS;
}
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

7

27.07.2006, 10:48

dann mach int m_iHealth in mainClass protected...

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

8

27.07.2006, 11:02

ja könte ich aber es soll ja von der Basis Klasse vererbt werden und wenn ich sie protected setze komme ich ja nicht mehr in der Childklasse ran!

Alos muss ich wohl vermeiden diese Variblenin anderen Methoden aufzurufen!
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

9

27.07.2006, 11:10

klar kommst du dann ran, dazu is ja protected da...
würdest du sie private setzten , kommst du nich mehr ran!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

27.07.2006, 11:15

Eigentlich ist der ganze Thread unnötig.
Solche Grundlagen findet man in jedem C++-Buch oder Tutorial.

Werbeanzeige