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

Techie

Alter Hase

  • »Techie« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

1

17.09.2013, 19:25

C++ | Feld konstant halten?

Hi,
ich schreibe zurzeit an einer Klasse, diese soll später abgeleitet werden.
Jedoch mache ich mir sorgen um einen Parameter, ein wstring.

Dieser darf nur im Konstruktor sowie im Destruktor verwendet werden.
Es darf auf keine andere Weise verändert werden.

Wie kriege ich das hin? Ich könnte zwar ein Hinweis schreiben, aber lieber sichergehen.

Gruß Techie
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

2

17.09.2013, 19:33

Im Grunde kann in deiner Klasse einfach ein const member sein. Ist der wstring in jeder Instanz anders?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

17.09.2013, 19:53

Schlüsselwort private? Problem erledigt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Techie

Alter Hase

  • »Techie« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

4

21.09.2013, 19:43

Und ein weiterer Irrtum in meinem Kopf hat sich erledigt. dachte eigentlich das als private gekennzeichnete Bereiche in abgeleiteten Bereichen nicht verfügbar sind.
Aber jetzt gibt alles wieder einen Sinn. Danke!
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

23.09.2013, 16:01

dachte eigentlich das als private gekennzeichnete Bereiche in abgeleiteten Bereichen nicht verfügbar sind.

So ist es ja auch.
Anders bei protected, hier können auch abgeleitete Klassen auf die Member zugreifen.

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

6

24.09.2013, 09:50

Ich weiss nicht so ganz, was private, protected etc. mit konstant zu tun haben? Konstant ist ein Hinweis fuer den Compiler, ueber den physischen Zustand des Programms. Der Rest ist nur syntaktischer Zucker, der nur zur Compilezeit besteht. Evtl. wurde hier die Frage aber auch einfach falsch formuliert.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

24.09.2013, 10:06

Es geht hier aber wohl scheinbar eher darum, dass ein Member der Oberklasse nicht durch eine Child-Klasse verändert werden darf. In diesem Fall ist der Member einfach als private zu deklarieren und falls notwendig eine protected-get-Methode anzubieten. Die Frage des Themen-Erstellers ist sicherlich sehr schwammig bis falsch formuliert. Der eigentlichen Zweck der Frage lässt sich nur spekulieren.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

8

24.09.2013, 10:12

Wie wäre es mit const + private + getter:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class whatever
{
public:
  whatever(const std::wstring& str)
    : myString(str)
  {
  }

  ~whatever()
  {
    // benutze myString... myString kann natürlich wegen const nicht mehr verändert werden!
    std::cout << myString << " = " << getTheString() << std::endl;
  }

// evtl noch protected, wenn nur die abgeleitete klasse den string lesen dürfen soll
// protected:

  const std::wstring& getTheString() const { return myString; }
private:
  const std::wstring myString;
};


Ok den getter und das private kann man sich vlt sparen, aber wenn man da noch funtionalität einbauen will (bla bla software technik)

Werbeanzeige