-
Erst mal ist p p1(); nicht richtig. Korrekt wäre p p1;, aber selbst dann tut sich noch nicht viel, weil die Klasse p keinen Standardkonstruktor hat. Änder dafür am besten Zeile 7 in public: p(char *n = "")
Ansonsten noch ein paar allgemeine Anmerkungen.
- Deine Formatierung ist wie du selber angemerkt hast, grauenhaft.
- Für so ne Übung mag das überflüssig erscheinen, aber aussagekräftige Namen für Klassen, Objekte, Variablen, Funktionen usw. sind Pflicht.
- In C++ haben die Headerdateien keine Endung. Was du da schreibst, macht dein Programm zu einer wilden Mischung aus C und C++.
- Du hast den Zeilenumbruch beim Output von getn vergessen.
- Die Mainfunktion heißt normalerweise int main(int argc, char** argv), auch wenn die meisten Compiler int main() oder sogar void main(void) akzeptieren.
- Nicht nötig, aber guter Stil: statt return 0; kann man zumindest in ANSI C return EXIT_SUCCESS schreiben. bei C++ bin ich mir nicht 100% sicher, aber ich würd mich wundern, wenns anders wär.
Mal ne bearbeitete Version (funktioniert bei mir)
Code:
// C++ Trainer, 19.2.2007, all rights reserved
#include <iostream>
#include <conio.h> // Gibts dafür ne C++ Variante?
#include <string>
using namespace std;
class Testklasse
{
private:
char name [20];
public:
Testklasse(char *n = "");
void setName(void);
void getName(void);
};
Testklasse::Testklasse(char *n)
{
strcpy (name,n);
}
void Testklasse::setName(void)
{
cout << "name: ";
cin >> name;
}
void Testklasse::getName(void)
{
cout << "name: " << name << endl;
}
int main()
{
Testklasse t1;
Testklasse t2("schulz");
t2.getName();
t1.setName();
t1.getName();
getch();
return EXIT_SUCCESS;
}
Für conio.h hab ich jetzt auf die Schnelle die C++ Variante nicht gefunden.