// ConsoleApplication1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include using namespace std; class pravouhle { public: // pro praci s protected promennymi pouzijeme fce - muzeme doplnit ruzne kontroly void nastavA(int a_a) { a = a_a; }; void nastavB(int a_b) { b = a_b; }; int vratA(void) { return a; }; int vratB(void) { return b; }; // nabizi se i zjednoduseni pomoci parametru fci a redukce na 2 nebo jednu fci. protected: // promenne nejsou viditelne vne tridy, pristupovat k nim muzeme pouze v ramci tridy, nebo v deckach int a; // strana a int b; //strana b }; class vypocty { public: int obvod (int a_a, int a_b) { return 2*a_a+2*a_b; }; int obsah (int a_a, int a_b) { return a_a*a_b; }; }; class telesa: private vypocty, public pravouhle { // trida telesa dedid ze trid vypocty - private a pravouhle - public public: telesa() { // konstruktor - nastavi defaultne hodnoty noveho objektu na 0 this->a = 0; b = 0; }; telesa(int a_a, int a_b) { // pretizeny kontruktor nastavi hodnoty na zadane na vstupu nastavA(a_a); b=a_b; }; int obvod (void) { return vypocty::obvod(pravouhle::vratA(), pravouhle::vratB()); // pouzijeme fce trid vypocty a pravouhle }; int obsah (void) { return vypocty::obsah(a, b); // vyuzijeme toho, ze promenne a, b jsou pouze protected, nikoliv private, muzeme k nim pristupovat v deckach }; ~telesa() { // destruktor - uklidi hodnoty na 0 this->a = 0; this->b = 0; }; }; int _tmain(int argc, _TCHAR* argv[]) { telesa obdelnik1(3, 6); // pri vytvoreni objektu rovnou pomoci konstrukrotu nastavime hodnoty cout << "strana a: " << obdelnik1.vratA() <<", strana b: " << obdelnik1.vratB() << endl; cout << "obsah: " << obdelnik1.obsah(); cout << "\nobvod: " << obdelnik1.obvod() << endl; telesa obdelnik2; // vytvorime objekt bez nastaveni hodnot - konstruktor nastavi hodnoty na defaultni hodnoty //obdelnik2.nastavA(10); //obdelnik2.nastavB(20); // obdelnik2.a = 10; // tohle fungovat nebude, promenne jsou protected! cout << "strana a: " << obdelnik2.vratA() <<", strana b: " << obdelnik2.vratB() << endl; cout << "obsah: " << obdelnik2.obsah() << endl; cout << "obvod: " << obdelnik2.obvod() << endl; return 0; }