000
08.09.2007, 15:01 Uhr
mavedriver
|
Hallo alle zusammen,
bin gerade dabei mir C++ beizubringen und hab da ma zwei Frage zum Umgang mit Headerdatei und Klassen. Zunächst die Headerdatei:
In den Beispielcode zur Verwendung von Headerdatei ich immer auf folgen drei Ausdrück gestoßen:
- #ifndef _HTIER_H - #define _HTIER_H - #endif
Wozu brauche ich diese Ausdrücke, dass ganze Programm funktioniert ja auch ohne diese.
Beim Umgang mit Klassen habe ich das bis jetzt so gelernt, dass man bevor man eine Methode bzw einen Konstruktor definieren kann, diesen zunächst deklarieren muss. Jetzt bin ich in einem Beispielprogramm darauf gestoßen das weder Konstruktor noch Methoden deklariert, sonder direkt definiert wurden. Bedeutet das jetzt, dass man sich die Deklaration von Methoden u. Konstruktoren beim Umgang mit Klassen sparren kann oder liegt es daran, dass es sich dabei um so genannte inline Methoden handelt.
Hier der Quellcode
C++: |
// htier.h
#include <iostream> #include <cstring> #ifndef _HTIER_H #define _HTIER_H using namespace std;
class Haustier { private: // Eigenschaften der Klasse Haustier char sorte[30]; char rasse[30]; char name[25];
public: // Konstruktoren // Default - Konstruktoren Haustier() { strncpy( sorte, "?", sizeof("?")); strncpy( rasse, "?", sizeof("?")); strncpy( name, "?", sizeof("?")); } Haustier(const char* s, const char* r, const char* *n) { strncpy(sorte, s, sizeof(sorte)-1); strncpy(rasse, r, sizeof(rasse)-1); strncpy(name, n, sizeof(name)-1); } // Dekonstruktor ~Haustier(){ } // Fähigkeiten (Methoden) der Klasse Haustier // Hier nur auf Zugrifsmethoden beschränkt const char* get_sorte() const { return sorte; } const char* get_rasse() const { return rasse; } const char* get_name() const { return name; }
void set_sorte(const char* s) { strncpy(sorte, s, sizeof(sorte)-1); } void set_rasse(const char* r) { strncpy(rasse, r, sizeof(rasse)-1); } void set_name(const char* n) { strncpy(name, n, sizeof(name)-1); } };
#endif
|
Vielen Dank schon mal in Vorraus für eure Antworten
mfg mavedriver
Bearbeitung von 0xdeadbeef: |
cpp-tags eingefügt. Nächstes mal selbst machen.
|
Dieser Post wurde am 08.09.2007 um 16:02 Uhr von 0xdeadbeef editiert. |