Problem bei der erstellung eines structs
-
Hallo
ich will ein struct erstellen indem ich ein name aufrufe. wie im folgenden dargestellt.
als blutiger anfänger sehe ich leider nich wo mein fehler liegt.
wäre daher super wenn mir jemand weiter helfen könnte.
vielen dank
gruß#include <iostream>
#include <string>
using namespace std;struct daten
{
int geb;
string name;};
void main()
{daten vorname;
string v=vorname.name=peter;
cout<<v;daten geburtstag,geburtsmonat,geburtsjahr;
int tag=geburtstag.geb=22;
int monat=geburtsmonat.geb=11;
int jahr=geburtsjahr.geb=1987;
cout<<"Geburtstag: "<<tag<<"."<<monat<<"."<<jahr;char dummy;
cin>>dummy;
}
-
1. Fehlermeldung?
2. [cpp] Tags verwenden.
3. Was erwartest du? Was bekommst du? Was möchtest du?Grüssli
-
Fabe1987 schrieb:
ich will ein struct erstellen indem ich ein name aufrufe. wie im folgenden dargestellt.
als blutiger anfänger sehe ich leider nich wo mein fehler liegt.
wäre daher super wenn mir jemand weiter helfen könnte.
vielen dank
gruß#include <iostream> #include <string> using namespace std; struct daten { int geb; string name; }; int main() { daten vorname; string v=vorname.name=peter; // <---- hier cout << vorname.name << endl; daten geburtstag,geburtsmonat,geburtsjahr; int tag=geburtstag.geb=22; int monat=geburtsmonat.geb=11; int jahr=geburtsjahr.geb=1987; cout<<"Geburtstag: "<<tag<<"."<<monat<<"."<<jahr; char dummy; cin>>dummy; }Tausche die markierte Zeile gegen
vorname.name = "peter";aus.
Verrätst Du uns noch was das Programm machen soll.
Gruß
Werner
-
folgende fehlermeldung:
c:\Dokumente und Einstellungen\Fabian Lang\Eigene Dateien\Visual Studio Projects\Probe00\Probe00.cpp(16): error C2065: 'peter': nichtdeklarierter Bezeichner
im hauptprogramm will ich geburtstag (was schon klappt) und den namen (was noch nicht will) ausgeben lassen
gruß
-
Fabe1987 schrieb:
im hauptprogramm will ich geburtstag (was schon klappt) und den namen (was noch nicht will) ausgeben lassen
Schritt 1 - verpassen der Struktur einen Konstruktor
Schritt 2 - schreibe einen Ausgabe-operator für die Struktur.
Schritt 3 - vereinfache das Hauptprogramm kolossalDas Ergebnis:
#include <iostream> #include <string> using namespace std; struct daten { daten( const std::string& n, int g ) : geb( g ) , name( n ) {} int geb; string name; }; std::ostream& operator<<( std::ostream& out, const daten& d ) { return out << "Name: " << d.name << " Geburtstag: " << d.geb; } int main() { daten person( "Peter", 1987 ); cout << person << endl; char dummy; cin>>dummy; }Gruß
WernerPS.: lies im Tutorial Deines Vertrauens alles noch mal genau nach
-
daten( const std::string& n, int g )Dassja goil! Ich dachte bisher, das geht nur mit Klassen!
-
staun0r schrieb:
Dassja goil! Ich dachte bisher, das geht nur mit Klassen!
In C++ ist
structundclassdas Gleiche. Der einzige Unterschied besteht darin, dass bei einemstructper Standard einepublicSichtbarkeit angenommen wird und bei einemclassper Standard eineprivateSichtbarkeit. Dies gilt auch für die abgeleiten Klassen.Also kurz an Code erläutert:
class ClassDerived : Base // ist hier ein private Base { void foo() { } // foo ist private }; struct StructDerived : Base // ist hier ein public Base { void foo() { } // foo ist public };Grüssli