I moved from C to C++ and I am a bit confused now. I am making two classes: Trieda and Ziak. First I created ziak.hpp, ziak.cpp and trieda.hpp, trieda.cpp and main.cpp but it was doing me some mess because I dont even know yet how to properly compile these files in Linux terminal.
So I make 3 files of these 5 and those are: main.cpp, ziak_trieda.hpp, ziak_trieda.cpp.
Here they are:
main.cpp:
#include <iostream>
#include <vector>
#include "ziak_trieda.hpp"
using namespace std;
int main(){
vector<Ziak> ziaci;
vector<Trieda> triedy;
Trieda B4 = new Trieda( 4, 'B' );
triedy.push_back( B4 );
Ziak hala = new Ziak( "Hala", "Bala" );
ziaci.push_back( hala );
Ziak lala = new Ziak( "Lala", "Trala", B4 );
ziaci.push_back( lala );
return 0;
}
ziak_trieda.hpp:
#include <vector>
using namespace std;
class Trieda{
private:
int cislo;
char pismeno;
vector<Ziak> ziaci;
public:
Trieda( int, char );
~Trieda();
void addZiak( Ziak & ziak );
void removeZiak( Ziak & ziak );
void printTrieda( Trieda trieda );
};
class Ziak{
private:
char meno[25];
char priezvisko[25];
Trieda trieda;
public:
Ziak( char meno, char priezvisko );
~Ziak();
void addTrieda( Ziak & menoZiaka, Trieda & nazovTriedy );
void removeTrieda( Ziak & menoZiaka );
void printInfo( Ziak & menoZiaka );
void printTrieda( Ziak & menoZiaka );
};
ziak_trieda.cpp
#include <iostream>
#include "ziak_trieda.hpp"
using namespace std;
// ============================== class Trieda ==============================
// trieda Constructor
Trieda::Trieda( int cislo, int pismeno ){
this -> cislo = cislo;
this -> pismeno = pismeno;
}
// trieda Destructor
Trieda::~Trieda(){
cout << "Odstranujem triedu " << this -> cislo << "." << this -> pismeno << endl;
}
// print Trieda
void Trieda::printTrieda( Trieda trieda ){
cout << trieda . cislo << "." << trieda.pismeno << endl;
}
//============================== class Ziak ==============================
Ziak::Ziak( char meno[25], char priezvisko[25], Trieda trieda ){
this -> meno = meno;
this -> priezvisko = priezvisko;
this -> trieda = trieda;
}
Ziak::~Ziak(){
cout << "Odstranujem ziaka " << this -> meno << " " << this -> priezvisko << endl;
}
// add Trieda
void Ziak::addTrieda( Ziak & ziak, Trieda trieda ){
ziak . trieda = trieda;
}
// remove Trieda
void Ziak::removeTrieda( Ziak & ziak ){
ziak . trieda = NULL;
}
// print Ziakova Trieda
void Ziak::printTrieda( Ziak & ziak ){
cout << ziak . trieda . cislo << "." << ziak . trieda . pismeno << endl;
}
void Ziak::printInfo( Ziak & ziak ){
cout << "Meno: " << ziak . meno << "\nPriezvisko: " << ziak . priezvisko << "\nTrieda: " <<
ziak . trieda . cislo << "." << ziak . trieda . pismeno << endl;
}
My questions:
1) How do I properly compile these files? I just put g++ main.cpp ziak_trieda.cpp
2) What to do when in I make class Trieda and in that class I am making vector and then I make class Ziak and in that class I am making variable of type Trieda. Any switch is not going to help because in Trieda I need Ziak and in Ziak I need Trieda.
By the way when I used g++ main.cpp ziak_trieda.cpp it put me maaaany errors and I dont even know what they are..
Aucun commentaire:
Enregistrer un commentaire