====== 2 - Třídy a objekty ======
===== Jednoduchá třída =====
#include
using namespace std;
class TridaA
{
int a; // implicitne private
public:
int b;
TridaA(); // konstruktor
~TridaA();
private:
int c;
};
TridaA::TridaA()
{
cout << "konstruktor" << endl;
}
TridaA::~TridaA()
{
cout << "destruktor" << endl;
}
struct TridaB
{
int a; // imlicitne public
};
int main ()
{
TridaA a;
TridaB b;
// promenna a je private
a.a = 10;
cout << a.a << endl;
// promenna a je public
b.a = 10;
cout << b.a << endl;
TridaA *c = new TridaA();
c->b = 88;
delete c;
return 0;
}
===== Třída s metodami =====
#include
class TridaA
{
private:
int stav;
public:
TridaA () {}
TridaA (int a) { }
TridaA (double a) { }
void metoda ()
{
// inline definice metody
// ekvivalent void TridaA::metoda () { ... }
// definice metody
std::cout << "metoda A" << std::endl;
}
int ctiStav ();
};
void TridaA::ctiStav ()
{
return stav;
}
class TridaB : public TridaA
{
/*
dedeni:
public: zachova se viditelnost podle puvodniho predpisu
protected: public -> protected
private: vsechno je private
*/
public:
void metoda ()
{
std::cout << "metoda B" << std::endl;
std::cout << "volani metody TridaA::metoda() "<< std::endl;
TridaA::metoda ();
}
};
int main ()
{
TridaA a;
a.metoda ();
TridaA b(10);
TridaA c(3.14);
TridaB d;
d.metoda ();
d.TridaA::metoda();
return 0;
}