 |
www.imir15.fora.pl Forum grupy nr. 15
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Łukasz
Dołączył: 18 Paź 2010
Posty: 21
Przeczytał: 0 tematów
Ostrzeżeń: 0/10
|
Wysłany: Wto 20:09, 21 Cze 2011 Temat postu: Egzamin wtorek Chmaj |
|
|
Przydatne materiałki do poczytania
[link widoczny dla zalogowanych]
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
testi
Dołączył: 06 Paź 2010
Posty: 32
Przeczytał: 0 tematów
Ostrzeżeń: 0/10
|
Wysłany: Wto 20:37, 21 Cze 2011 Temat postu: |
|
|
Haha dzięki przyda sie
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Łukasz
Dołączył: 18 Paź 2010
Posty: 21
Przeczytał: 0 tematów
Ostrzeżeń: 0/10
|
Wysłany: Wto 22:26, 21 Cze 2011 Temat postu: |
|
|
dobra teraz na poważnie
#include <cstdlib>
#include <iostream>
using namespace std;
class BaseClass // klasa bazowa
{
public: // blok publiczny klasy
BaseClass(int i){ x = i;} // konstruktor klasy bazowej przyjmujacy argument int i
int x;
virtual void PrintVariable(); // deklaracja funkcji wirtualnej, tzn poczatek polimorfizmu czyli inteligentych funkcji ktorych wersja zalezy
// od tego dla jakiego obiektu jest wywolywana dla tego obiektu funckja jesli jest zdefiniowana inna to sie ona wywoluje odpowiednio inna
void Run() // metoda prezentujaca klase
{
cout << " jestem w klasie bazowej w metodzie Run:" << endl;
PrintVariable(); // wywolanie w klasie bazowej funkcji print variable (wirtualnej)
cout << " wychodze z klasy bazowej z metody Run:" << endl;
}
};
class FirstInheritClass : public BaseClass // klasa FirstInheritClass dziedziczy publicznie po klasie BaseClass tzn elementy z klasy base są dostępne
// w klasie firstinheritclass jako publiczne (nie trzeba ich deklarowac) np int x jest dostepny w tej klasie,
// np funkcja PrintVariable tez jest dostepna i funkcja Run tez
{
public:
FirstInheritClass(int x) : BaseClass(x){} // konstruktor klasy FirstInheritClass ktory wywoluje konstruktor klasy BaseClass tam po " :
//wywoluje sie on na tzw liscie inicjalizacyjnej konstruktora
void PrintVariable(); // deklaracja funkcji PrintVariable ktora bedzie oddzielnie zdefiniowana (tzn jesli wywolasz te funkcje na rzecz obiektu
// FirstInheritClass to ona bedzie sie wywolywac a nie ta z klasy BaseClass
};
class SecondInheritClass : public BaseClass // koleina klasa dziedziczaca publicznie po klasie BaseClass
{
public:
SecondInheritClass(int x) : BaseClass(x){} // konstruktor klasy SecondInheritClass z wywolaniem konstruktora klasy bazowej BaseClass
// w tej klasie dostepny jest oczywiscie int x i funkcja PrintVariable jednak tutaj nie robisz jakiejs specjalnej wersji tej funcki
// tzn gdy wywolasz ja na rzecz obiektu SecondInheritClass wywola sie funcja z klasy BaseClass z linijki 11 ( nie myl z linia 2
};
void BaseClass::PrintVariable() // definicja funkcji PrintVariable w klasie bazowej BaseClass poznajesz po "::" przed nazwa funkcji:)
{
cout << "jestem w metodzie PrintVariable klasy BaseClass" << endl;
cout << " x = "<< x << endl;
cout << "wychodze z metody PrintVariable klasy BaseClass" << endl;
}
void FirstInheritClass::PrintVariable() // odmienna definicja funkcji dla klasy FirstInheritClass zobacz przed "::" to jest skad pochodzi funkcja
// czyli pochodzi z klasy FirstInheritClass
{
cout << "jestem w metodzie PrintVariable klasy FirstInheritClass" << endl;
cout << " x + x = "<< x + x << endl;
cout << "wychodze z metody PrintVariable klasy FirstInheritClass" <<endl>Run(); // uruchomienie metody z klasy Base
base = &instanceFirst; //przypisanie adresu (referencji) od klasy pochodnej FirstInheritClass tutaj mozna tak zrobic bo klasa FirstInheritClass jest dzieckiem
// klasy BaseClass dlatego wskaznik od base moze pokazywac na obiekt typu FirstInheritClass
base->Run(); // uruchomienie metody z klasy Base chociaz wskaznik base pokazuje na obiekt typu FirstInheritClass jednak ten jest "dzieckiem"
// czyli dziedziczy metode Run z klasy Base
base = &instanceSecond; // przypisanie trzeciego elementu dziedziczacego z klasy SecondInheritClass
base->Run(); // tutaj rowniez uruchamia sie metoda Run z klasy base poniewaz klasa SecondInheritClass nie definiuje swojej osobnej
// tylko ma ta co odziedziczyla po klasie Base
/*BaseClass instance = BaseClass(10);
FirstInheritClass instanceFirst = FirstInheritClass(15);
SecondInheritClass instanceSecond = SecondInheritClass(20);
/*cout << endl << "wiazania statyczne" <<endl>Run();
base = &instanceFirst;
base->Run();
base = &instanceSecond;
base->Run(); */
system("PAUSE");
return EXIT_SUCCESS;
}
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
mona
Dołączył: 06 Paź 2010
Posty: 67
Przeczytał: 0 tematów
Ostrzeżeń: 0/10
|
Wysłany: Sob 21:32, 25 Cze 2011 Temat postu: |
|
|
what the fuck is this:P
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|