Problem mit Verbundsanweisung
-
Hi,
Ich bin gerade dabei C++ zu lernen (M+T Jetzt lerne ich... C++). Im Moment bin ich bei den "Ausdrücken und Anweisungen" und da wollte ich mal ein Programm zum üben schreiben. Also erstmal das Programm:
#include <iostream> #define a "Ich bin " #define b 14 #define c " Jahre alt." int main() { /* Bei abc = a + b + c gibt er mir eine Fehlermeldung aus, nur ich weiß nicht wie ich es sonst machen sollte. */ abc = a + b + c; std::cout << abc << std::endl; return 0; }Ich will die Konstanten a, b & c zusammenfassen, damit ich nicht std::cout << a << b << c ... schreiben muss sondern nur abc. Nur ich weiß nicht wie ich das hinkriegen soll. Das Programm wollte ich nur machen um zu üben. Also vielleicht könnt ihr mir ja helfen.
MfG pacman
-
Wie heisst die Fehlermeldung?
Sie wird aber wohl daher rühren, dass du vergessen hast abc zu deklarieren. Also einen Schritt in deinem Buch zurück und nochmal das Kapitel Variablen durchlesen.
-
Und der zweite Fehler ist, daß es keinen operator+ für char* gibt - und nach Auswertung der Zeile durch den Präprozessor steht dort:
abc = "Ich bin " + 14 + " Jahre alt";(das erste + dürfte er noch schlucken, aber nur Müll liefern, das zweite ist definitiv verkehrt)
-
#define abc a << b << c
Und nun ernst: Lass die Defines weg! Und nimm bessere Bezeichner als a,b und c.
Gruß
-
Ok, danke habs hingekriegt. Nur wenn ich kein #define mehr benutze kann ich keinen Satz in einer Variablen speichern. Wenn ich es mit const mache sagt mein Compiler: "Konvertierung von 'char *' nach 'int' nicht möglich in Zeile 3"
-
In einen int kann man auch nur Zahlen speichern... Schau dir doch wirklich nochmal das Kapitel zu Variablen an, und wie man Texte speichert wird wohl dann später noch behandelt werden.
Gruß