#include <iostream>
#include <vector> /// potrebujes pre pracu s vectormi
using namespace std;
class NovaTrieda /// vytvorenie novej tried
{
private: /// sukromne premenne
string nazov;
string typ;
int pocet;
public: /// verejna cast
NovaTrieda(){}; /// bezparametricky konstruktor
NovaTrieda(string nazov, string typ, int pocet) /// parametricky konstruktor
{
this->nazov = nazov;
this->typ = typ;
this->pocet = pocet;
}
~NovaTrieda(){}; /// destruktor
/// GET Metody
string vratNazov()
{
return nazov; /// vracia sukromnu premennu nazov
}
string vratTyp()
{
return typ; /// vracia sukromnu premennu typ
}
int vratPocet()
{
return pocet; /// vracia sukromnu premennu pocet
}
/// SET Metody
void nastavNazov(string nazov)
{
this->nazov = nazov; /// nastavi novu hodnotu do premennej nazov
}
void nastavTyp(string typ)
{
this->typ = typ; /// nastavi novu hodnotu do premennej nazov
}
void nastavPocet(int pocet)
{
this->pocet = pocet; /// nastavi novu hodnotu do premennej nazov
}
/// Metoda VYPIS
void vypis()
{
cout << nazov << "\t" << typ << "\t" << pocet << endl; /// vypise vsetky sukromne premenne do jedneho riadku a vlozi medzi ne tabulator a na konci vypisu odriadkuje
}
};
int main()
{
cout << "********************** 1.cast **********************" << endl;
NovaTrieda *objekt1 = new NovaTrieda("objekt c.1", "objekt", 10); /// vytvori novy dynamicky objekt v triede NovaTrieda a vola parametricky konstruktor
objekt1->vypis(); /// vypise dynamicky objekt objekt1 vytvoreny o riadok vyssie
NovaTrieda objekt2("objekt c.2", "objekt", 55); /// vytvori staticky objekt v triede NovaTrieda a vola parametricky konstruktor
objekt2.vypis();
/// vsimni si ze pri dynamickych objektoch pouzivas pre volanie metody -> a pri statickych .
/// VECTORY
vector <NovaTrieda> novyVektor; /// vytvori novy vektor triedy NovaTrieda s nazvom novyVektor
novyVektor.push_back(objekt2); /// vlozis do vektora novyVektor na koniec vektora novy objekt
novyVektor.push_back(NovaTrieda("objekt c.3","objekt",75)); /// vytvoris na konci vektora novyVektor novy objekt a volas parametricky konstruktor
novyVektor.push_back(NovaTrieda("objekt c.4","objekt",84)); /// vytvoris na konci vektora novyVektor novy objekt a volas parametricky konstruktor
novyVektor.push_back(NovaTrieda("objekt c.5","objekt",75)); /// vytvoris na konci vektora novyVektor novy objekt a volas parametricky konstruktor
novyVektor.push_back(NovaTrieda("objekt c.6","objekt",95)); /// vytvoris na konci vektora novyVektor novy objekt a volas parametricky konstruktor
cout << "********************** 2.cast **********************" << endl;
/// Hladanie objektu s premennou pocet nastavenou na 95, ked ho najde program ho vypise
int velkost_vektora = novyVektor.size(); /// nacitas do premennej velkost_vektora aktualnu velkost vektora novyVektor
for(int i = 0; i < velkost_vektora; i++) /// prejde cely vektor
{
if(novyVektor[i].vratPocet() == 95) /// kazdy objekt vo vektore porovna metodou vratPocet() ci sa pocet zhoduje s 95
{
novyVektor[i].vypis(); /// ak zisti že sa zhoduje s 95 vypise dany objekt pomocou metody vypis()
}
}
cout << "********************** 3.cast **********************" << endl;
/// Vypise cely vektor na obrazovku
for(int i = 0; i < velkost_vektora; i++) /// prejde cely vektor, v tomto for pouzivas premennu velkost vektora ktora bola nacitana vysiie ak si ale medzi tymto for a deklaraciou tej premennej
///hore pridal nejak prvok tak musis znova nacitat velkost vektora do tej premennej a to takto : velkost_vektora = novyVektor.size();
{
novyVektor[i].vypis(); /// kazdy objekt vypise metodou vypis()
}
cout << "********************** 4.cast **********************" << endl;
/// Hladanie objektu s premennou pocet nastavenou na 55, ked ho najde program ho vymaze a cely vektor vypise
for(int i = 0; i < velkost_vektora; i++) /// prejde cely vektor
{
if(novyVektor[i].vratPocet() == 55) /// kazdy objekt vo vektore porovna metodou vratPocet() ci sa pocet zhoduje s 55
{
novyVektor.erase(novyVektor.begin()+i); /// ak zisti že sa zhoduje objekt odstrani z vektora
}
}
for(int i = 0; i < velkost_vektora; i++) /// prejde cely vektor
{
novyVektor[i].vypis(); /// kazdy objekt vypise metodou vypis()
}
return 0;
}