ERLEDIGT
NEIN
NEIN
ANTWORTEN
22
22
ZUGRIFFE
1092
1092
EMPFEHLEN
-
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 :1 2 3 4 5
int id=1; char beisp[] = "aaa"; char dada[]; cin >> dada; beispklasse [COLOR=Red]dada[/COLOR]([COLOR=Red]id[/COLOR], [COLOR=Red]dada[/COLOR]);
Ich hoffe ihr könnt mir helfen,
danke schonmal im voraus,
Daniel
-
29.10.04 16:15 #2
*verwirrt* komm jetzt nicht ganz mit. Objekt einer Klasse ?
der constructor deiner beispklasse sollte zumindest mal so in
etwa aussehen, oder versteh ich das problem nicht?
Code :1 2 3 4 5
beispklasse:beispklasse(int id, char* dada) { myId = id; myDada = dada; };Signatur hat Urlaub.
-
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);
-
29.10.04 16:40 #4
- Registriert seit
- Mar 2004
- Beiträge
- 302
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.
-
29.10.04 16:52 #5
- Registriert seit
- Jan 2004
- Ort
- Wannweil
- Beiträge
- 302
Hast du mal daran gedacht, dass Objekte auch nur Variablen sind?
Noch weiter helfen jetzt nur noch google, msdn, Tutorials, Forumssuche, Eingebungen, Glück und ein wenig Hirnanstrengung.
-
@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;
-
29.10.04 17:12 #7
- Registriert seit
- Jan 2004
- Ort
- Wannweil
- Beiträge
- 302
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.Geändert von Beichtpfarrer (29.10.04 um 17:15 Uhr)
Noch weiter helfen jetzt nur noch google, msdn, Tutorials, Forumssuche, Eingebungen, Glück und ein wenig Hirnanstrengung.
-
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...
-
29.10.04 17:33 #9
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 !Signatur hat Urlaub.
-
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.
-
29.10.04 18:02 #11
- Registriert seit
- Aug 2001
- Beiträge
- 1.411
Bitte die Netiquette (speziell Gross-/Kleinschreibung) beachten
-
29.10.04 18:37 #12
Na also, sags doch!
Eine Möglichkeit ist es, dies mit einem "static attribut" zu lösen.
deine Klasse:
Code :1 2 3 4 5 6
class CArchiv { public: CArchiv(){ m_iCDID++; }; //hier wird die nummer inkrementiert static int m_iCDID; //statisches Attribut }
main.cpp:
Code :1 2 3 4 5 6
int CArchiv::m_iCDID = 0; //WICHTIG: Attribut muss initialisiert werden int main() { ... }
Hoffe geholfen zu haben.
GrußSignatur hat Urlaub.
-
Ahhhhh....
Ihr könnt mich für blöd halten oder was auch immer ihr wollt. Ich bekomm das nicht zum laufen! Ich hab meine .cpp mal in den Anhang, hoffe ihr werdet daraus schlau.
Danke,
Daniel
PS: Das mit "static attribut" scheint wohl zu funktionieren wenn der Rest funktioniet...
-
Du übergibst hier ein char-Array, aber von Konstruktor wird ein einzelnes char erwartet!
Da char-Array char-Pointer entspricht, würd ich das, wenn du bei char als Datentyp bleiben willst, so lösen:
Code :1 2 3 4 5 6 7 8 9 10 11 12
[COLOR=blue]class[/COLOR] disk{ [COLOR=blue]public:[/COLOR] disk([COLOR=blue]char[/COLOR]* be); ~disk(); [COLOR=blue]char[/COLOR]* get_its_id() [COLOR=blue]const[/COLOR]; [COLOR=blue]char[/COLOR]* get_its_beschr() [COLOR=blue]const[/COLOR]; [COLOR=blue]void[/COLOR] set_its_beschr([COLOR=blue]char[/COLOR]* bes); [COLOR=blue]static[/COLOR] UNSHO its_id; [COLOR=blue]private:[/COLOR] [COLOR=Green]// its_id;[/COLOR] [COLOR=blue]char[/COLOR]* its_beschr; };Geändert von C Coder (30.10.04 um 13:10 Uhr)
-
Hier einmal die vollständige Lösung im Anhang.
Anstatt von char könntest du auch std::string nutzen.
Dann würde der ganze Kram in Sachen speicherreservierung wegfallen. Außerdem hättest
du noch ein paar nützliche Funktionen gratis dazu!
Ähnliche Themen
-
Kopieren gleicher Eigenschaften zwischen Objekten unterschiedlicher Klassen
Von mcdroemmel im Forum Java GrundlagenAntworten: 3Letzter Beitrag: 25.08.09, 08:58 -
Eingabe Überprüfung von Klassen-Objekten
Von dzyan im Forum Java GrundlagenAntworten: 24Letzter Beitrag: 07.11.08, 16:23 -
Kommunikation zwischen Klassen/Objekten
Von floggie im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 6Letzter Beitrag: 24.03.06, 14:32 -
Hangman mit Klassen und Objekten
Von sk4r im Forum C/C++Antworten: 3Letzter Beitrag: 19.04.05, 18:29 -
Array von Klassen-Objekten
Von mage im Forum PHPAntworten: 4Letzter Beitrag: 29.05.02, 17:33





Zitieren
Login






