Ich steige jetzt in OOP ein, aber die Dateien werden ziemlich groß. Ich habe mich gefragt, ob es möglich wäre, einige größere Funktionen in separate Dateien und die Klassen in eine separate Datei zu legen. Nehmen wir zum Beispiel an, ich habe den folgenden Code:
#include
#include
#include
using namespace std;
//------------------------SHAPE------------------------------------//
class shape {
protected:
double area;
public:
shape(): area(0) {}
shape(double A): area(A) {}
virtual ~shape() {}
};
//------------------------SQUARE------------------------------------//
class square : public shape {
friend ostream & operator<<(ostream &os, const square &squ);
protected:
double width;
public:
square(): shape(0), width(0) {}
square(double w): shape(w*w), width(w) {}
virtual ~square() {}
};
ostream & operator<<(ostream &os, const square &squ) {
os << "Breite: " << squ.width << ", Fläche: " << squ.area;
return os;
}
//------------------------CUBE-------------------------------------//
class cube : public square {
friend ostream & operator<<(ostream &os, const cube &cub);
public:
cube(): square(0) {}
cube(double w):
square(w) {}
cube(square squ):
square(squ.getwidth()) {}
~cube() {}
double volume() const {
double temp = width*area;
return temp;
}
};
ostream & operator<<(ostream &os, const cube &cub) {
os << "Breite: " << cub.width << ", Volumen: " << cub.volume();
return os;
}
double square(double N) {
return N*N;
}
//------------------------MAIN------------------------------------//
int main() {
square s1;
// andere Dinge
}
Wie würde ich die Klassen in eine Datei und die Funktion in eine andere Datei und das Hauptprogramm in eine weitere Datei legen, aber dennoch alles mit g++ kompilieren?