Obsah

Objekty

#include <iostream>
using namespace std;
 
struct A 
{ 
	A() { cout << "Konstruktor A" << endl; } 
	~A() { cout << "Destruktor A" << endl; }
};
 
struct B : public A
{
	B() { cout << "Konstruktor B" << endl; }
	~B() { cout << "Destruktor B" << endl; }
};
 
struct C : public A
{
	C() { cout << "Konstruktor C" << endl; }
	~C() { cout << "Destruktor C" << endl; }
};
 
struct D
{
	D() { cout << "Konstruktor D" << endl; }
	~D() { cout << "Destruktor D" << endl; }
};
 
struct E : public C, public D
{
	E() { cout << "Konstruktor E" << endl; }
	~E() { cout << "Destruktor E" << endl; }
};
 
struct F
{
	F() { cout << "Konstruktor F" << endl; }
	~F() { cout << "Destruktor F" << endl; }
};
 
struct G : public F, public D
{
	G() { cout << "Konstruktor G" << endl; }
	~G() { cout << "Destruktor G" << endl; }
};
 
struct H : public B, public F
{
	H() { cout << "Konstruktor H" << endl; }
	~H() { cout << "Destruktor H" << endl; }
};
 
int main()
{
	A a1; 
	{
		B b1; 
		C c1;
	}
	D d1; 
	{
		E e1; 
		{
			F f1; 
		}
		G g1;
	}
	H h1; 
}

Left

#include <iostream>
#include <cmath>
using namespace std;
 
void left(int cislo, int cifer)
{
	/* tohle je jenom jedna z moznych variant */
 
	/* pocet cifer cisla - cmath */
	int celkem = log10(cislo);
 
	/* cislo vydelime tak aby nam zustal pouze potrebny pocet cifer */
	for (int i = 0; i < celkem-cifer+1; i++)
	{
		cislo /= 10;
	}
 
	/* vypiseme */
	cout << cislo;
}
 
 
void left(const char* text, int znaku)
{
	int i = 0;
	/* vypisujeme prislusny pocet znaku */
	while (i < znaku && text[i] != '\0')
	{
		cout << text[i];
		i++;
	}
}
 
void left(double cislo, int cifer)
{
	/* spravne bychom si meli overit, ze se nam vysledek vleze do int */
	int celkem = log10(cislo);
	if (celkem >= cifer)
	{
		int vysledek = cislo;
		for (int i = 0; i < celkem-cifer+1; i++)
		{
			vysledek /= 10;
		}
		cout << vysledek;
		return;
	}
	else
	{
		for (int i = 0; i < cifer-celkem; i++)
		{
			cislo *= 10;
		}
		cout << static_cast<int>(cislo);
		return;
	}
 
}
 
int main()
{
	int x = 12345; double y = 123.45; const char* z = "Hello World!";
 
 
	left(x,3); cout << endl;
	left(y,2); cout << endl;
	left(y,4); cout << endl;
	left(z,4); cout << endl;
 
	left(x,20); cout << endl;
	left(y,8); cout << endl;
	left(z,20); cout << endl;
 
	return 0;
}

Lod

#include <iostream>
#include <string>
using namespace std;
 
class Lod
{
	protected:
		/* chraneny atribut (aby potomci mohli nastavit rychlost) */
		string p_jmeno;    /**< jmeno lodi */
 
		double p_rychlost; /**< rychlost v km */
 
		/** Chraneny konstruktor (dostupny pouze z potomku) */
		Lod(const char* jmeno) : p_jmeno(jmeno), p_rychlost(0.0) { }
		/** Chraneny konstruktor (dostupny pouze z potomku) */
		Lod(string jmeno) : p_jmeno(jmeno), p_rychlost(0.0) { }
 
	public:
		double rychlost_km() const
		{ return p_rychlost; }
 
		double rychlost_uzly() const
		{ return p_rychlost/1.852; }
 
		const char* jmeno_lodi() const
		{ return p_jmeno.c_str(); } /* viz dokumentace tridy string */
};
 
class Plachetnice : public Lod
{
	bool p_plachty_nahore;
 
	public:
		Plachetnice(const char* jmeno) : Lod(jmeno), p_plachty_nahore(false) {}
		Plachetnice(string jmeno) : Lod(jmeno), p_plachty_nahore(false) {}
 
 
		void napnout_plachty()
		{
			p_plachty_nahore = true;
			p_rychlost = 20;
		}
 
		void stahnout_plachty()
		{
			p_plachty_nahore = false;
			p_rychlost = 0;
		}
 
		void vypis_info() const
		{
			cout << "Plachetnice \'" << p_jmeno << "\' prave ted ";
			if (p_plachty_nahore)
			{
				cout << "pluje s napnutymi plachtami rychlosti " <<
				rychlost_km() << " km/h coz je " << 
                                rychlost_uzly() << " uzlu." << endl;
			}
			else
			{
				cout << "stoji se stazenymi plachtami." << endl;
			}
		}
};
 
class MotorovyClun : public Lod 
{
	int p_stupen;
 
	public:
		MotorovyClun(const char* jmeno) : Lod(jmeno), p_stupen(0) {}
		MotorovyClun(string jmeno) : Lod(jmeno), p_stupen(0) {}
 
		void nastav_rychlost(int stupen)
		{
			const double rychlosti[4] = { 0.0, 20.0, 30.0, 50.0 };
			p_stupen = stupen;
			p_rychlost = rychlosti[p_stupen];
		}
 
		void vypis_info() const
		{
			cout << "Motorovy clun \'" << p_jmeno << "\' prave ted ";
			if (p_stupen > 0)
			{
				cout << "pluje na rychlostnim stupni " << 
                                p_stupen << " rychlosti " <<
				rychlost_km() << " km/h coz je " << 
                                rychlost_uzly() << " uzlu." << endl;
			}
			else
			{
				cout << "stoji s vypnutym motorem." << endl;
			}
		}
 
};
 
int main()
{
	MotorovyClun lod1("Ponorka");
	Plachetnice  lod2("Vlnka");
 
	lod1.vypis_info();
	lod2.vypis_info();
 
	lod1.nastav_rychlost(3);
	lod2.napnout_plachty();
 
	lod1.vypis_info();
	lod2.vypis_info();
 
	return 0;
}
QR Code
QR Code public:specialni_vzory_tyden2 (generated for current page)