Problem mit der Namensgebung von Objekten von Klassen

HdZ

Grünschnabel
Hi Leute,

Ich habe folgendes Problem:
Wenn ich einem Objekt einer Klasse als Namen den Wert einer Variable geben möchte, bekomme ich einen Compilerfehler. (Normal wahrscheinlich) Wie kann ich das bewerkstelligen, dass das funktioniert?
Genauso wie die übergabe von Variablen als Parameter.
Beispiel:

Code:
int id=1;
char beisp[] = "aaa";
char dada[];
cin >> dada;
beispklasse dada(id, dada);

Ich hoffe ihr könnt mir helfen,
danke schonmal im voraus,
Daniel
 
*verwirrt* komm jetzt nicht ganz mit. Objekt einer Klasse ? :confused: :confused:

der constructor deiner beispklasse sollte zumindest mal so in
etwa aussehen, oder versteh ich das problem nicht?

Code:
beispklasse:beispklasse(int id, char* dada)
{
  myId = id;
  myDada = dada;
};
 
Wie Mr. Undertaker bereits geschrieben hat. Den Compilerfehler kriegst du weg, in dem du das Objekt NICHT gleich wie einen Variablennamen (dada) nennst.

Zum Bleistift:

beispklasse hurz(id, dada);
 
Du kannst einem Objekt nicht den Wert einer Variablen als Namen geben, so dass du es dann im Quellcode damit ansprechen kannst. Das geht nicht.
 
@mr.undertaker
sorry weiß nicht wie man dass nennt, aber ihr habt das problem erkannt.
muss ich dada als zeiger an den kunstruktor übergeben?
@all
das problem ist, dass ich datenbank erstellen will, die die namen (bzw. die id) der Objekte automatisch verteilt.
Also kurzform:
Code:
int id=0;
neu:
id = id+1;
beispielklasse id (...);
goto neu;
 
int id; ist eine Variable und wie eben von mir erwähnt, ist
beispielklasse id; auch eine Variable und beide haben denselben Namen.

Nur leider darfst du in einem Namensbereich keine 2 Variablen mit gleichem Namen haben!

Weißt du auch, welchen Sinn das hat?
-> sonst weiß man bei Verwendung einer dieser Variablen nicht, welche gemeint ist (einleuchtend oder?)

PS: Falls du irgendwie meinst, du musst diese Variablen gleich nennen, um Daten zu übertragen oder sowas - der Name einer Variablen hat keinerlei Einfluss auf ihren Inhalt, ihr Name ist ausschlieslich dafür gedacht, dass der Compiler (und auch du) sie von den anderen unterscheiden kann.
 
Zuletzt bearbeitet:
okay, das ist schon einleuchtend, aber es muss doch möglich sein einem objekt einen namen während die anwendung läuft zu geben. also über cin und dann ein neues objekt mit dem namen den man gerade eingegeben hat.
ich will die nicht gleich nennen, aber ich kann mir nicht ausmalen wie es sonst geht... :-(
 
Ach, das ist die Frage, also:

Nein man kein während der Laufzeit den Variablen/Klassennamen nicht ändern !

Denn es gibt absoluten keinen Grund für so einen Schwachsinn!

Oder ich (bzw wir) verstehen dich falsch !
 
okay, nochmal, dann lass ich euch in ruhe.

ich möchte zum beispiel eine datenbank zum verwalten von cds erstellen. nun gebe ich für jede cd ein paar daten ein (an den konstruktor der klasse disk). jetzt möchte ich dass für jede cd die ich erstelle automatisch eine nummer zugeordnet wird, als variable in der klasse. also die erste cd erhält id = 1, die zweite id=2 usw.
man könnte es mit dem autowert bei ms access vergleichen.
Danke euch, und hoffe dass ich eure nerven nicht zu arg beansprucht habe.
 
Zurück