Klasseneigenschaften

andreas_gierisch

Erfahrenes Mitglied
C++[Borland][WindowsXP]

Hallo, mich würde gern mal folgendes interessieren:
Ich habe eine Klasse geschrieben, welche einige Methoden und einen Konstruktor enthält. Im Konstruktor wird beim Erzeugen einer Instanz ein Integerwert übergeben. Ich würde jetzt gern abhängig vom Integerwert einige Methoden zugänglich machen, die anderen "verstecken". Gibt es dafür Befehle oder ist dies nicht möglich?
 
Moin moin,

mir fallen da jetzt auf Anhieb nur Präprozessor-Def's einfallen. Aber das wird es wohl nicht sein was du suchst :confused:

Gruss Michael
 
Hi.

Du solltest evtl. dein Design überarbeiten. Das klingt für mich eher so als solltest du die Klasse die du hast in mehrere Klassen aufteilen und den Integerwert vom Konstruktor weglassen - du instanzierst einfach direkt die Klasse die du brauchst.

Mach einfach eine Basisklasse mit den Grundfunktionen und benutze Vererbung um dann zusätzliche Methoden bzw. andere Zugriffsrechte zu definieren (man kann public, protected oder private vererben).

Gruß
 
Hm...naja eigentlich war die Aufgabe eine Klasse zu dem Problem zu schreiben, aber dann werd ich eben mehrere schreiben, ist irgendwie auch logischer.
 
Ich würde gerne einmal die Aufgabe erfahren. Klingt sehr interessant, nur wüßte ich jedoch auch nicht, wie Prozeduren so einfach versteckt werden könnten. Maximal durch Vererbung, anders würd es nicht gehen. Und mit Präprozessor geht dies nicht, da diese ja zur Laufzeit verändert werden sollen.

Mit freundliche Grüßen
 
Moin moin,
Krypthonas hat gesagt.:
Ich würde gerne einmal die Aufgabe erfahren.Klingt sehr interessant
Krypthonas hat gesagt.:
mit Präprozessor geht dies nicht
das geht schon, auch wenn es eher ein "löschen" als ein "verstecken" ist, da beim "Verstecken" ja die Funktionen immer noch vorhanden sind;-)
Krypthonas hat gesagt.:
da diese ja zur Laufzeit verändert werden sollen.
Tja die Aussage macht dann die Sache mit dem Präprozessor kaputt:-) allerdings auch die Vererbung! Da wenn ich mich halbwegs richtig erinnere, ist das Erstellen der Instanz vom Konstruktor abhängig und nicht von einem Integerwert der übergeben wird.
Man könnte vielleicht in ner Switsch-Case Abfrage alle Möglichkeiten behandeln, aber das ist dann wirklich nicht das schönste...Templates (auch wenn ich die Dinger bis jetzt noch nie angepackt hab;-)) bieten sich an. Zumindest so wie ich die verstanden hab.

Gruss Michael
 
andreas_gierisch hat gesagt.:
Ok, danke erstmal. Dann werd ich mir mal Templates anschaun, vielleicht hilft das weiter.

Nicht aber dein oben geschildertes Problem. Wenn du denkst du kannst eine Problemreduktion durch die Templates herleiten, muss ich dir sagen, dass dies nicht funktionieren wird. Templates gehören zu den sogenannten generischen Programmiertypen und dienen dazu Problemlösungen "in einem Prozess" zu erfassen und zu lösen, unabhängig der Eingangsgröße(Datentyp).

Mit freundlichen Grüßen
 
Zurück