Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
C++

Podejście obiektowe do programowaniapodstawy programowania obiektowego na przykładzie c++

C++

  • Zamknięty Temat jest zamknięty
9 odpowiedzi w tym temacie

#1 -PainKiller-

    Wszechobecny

  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 24.10.2010 22:02

Obiektowość zmienia podejście i spojrzenie na programowanie. Ideą jest ułatwienie życia programistą, pewnego rodzaju odniesienie kodu do świata rzeczywistego.

Dla zobrazowania napiszę prymitywny program mający na celu przedstawienie istoty programowania obiektowego ;

stworzymy sobie klasę samolot, klasa jest niczym innym jak typem danych, wbudowane typy takie jak char, int, string(z biblioteki) czy inne nie posiadają możliwości wprowadzenia takich informacji jak "obecna wysokosc" czy "nazwa" (jednocześnie)

#Include <iostream>
using namespace std; 

class samolot
{
public:  //zmienne(pola, właściwości) lub funkcje(metody) - publiczne, można sie do nich odwołać z każdego miejsca programu.
int wysokosc; 
samolot()       //deklaracja "konstruktora" jest to funkcja ktora wywoływana jest podczas tworzenia obiektu, kompilator pozna ze jest to konstruktor w momencie gdy bedzie posaiadał taka sama nazwe jak klasa
{
wysokosc = 0;    //nadajemy stworzonemu obiektowi wlasciwosc wysokosc na zero; (obiektu jeszcze nie mamy)
}

void podaj_wysokosc()
{
cout<<"jestesmy teraz na wysokosci: "<<wysokosc<<endl; 
}

void w_gore(int ile)
{
wysokosc += ile; 
}

void w_dol(int ile)
{
wysokosc -= ile; 
}


private:  //zmienne(pola, właściwości) lub funkcje(metody) - prywatne, można sie do nich odwołać tylko pomiędzy klamrą otwierającą deklaracje klasy a zamykającą.
}; //zakończenie deklaracji klasy[u] średnikiem[/u]


main()
{

samolot tupolev; //STWORZYLIŚMY obiekt "tupolev" i jednoczesnie wywolaismy konstruktor czyli obiekt ma juz jedna wlasciwosc jest to jego wysokość na jakiej sie znajduje, konstruktor dał mu zero

//dowiemy sie gdzie jestesmy
tupolev.podaj_wysokosc(); 

//wzniesiemy sie 100 do gory
tupolev.w_gore(100); 
tupolev.podaj_wysokosc(); 

//zlecimy 50 w dol
tupolev.w_dol(50); 
tupolev.podaj_wysokosc(); 


system("pause"); 
}

nie kompilowałem, zakładam że działa

mamy tutaj konstruktor i trzy metody, dwie sterujace i jedna informujaca o naszym samolocie, mozemy nim sterowac góra/dół a także możemy sie dowiadywać na jakiej wysokosci jestesmy, wystarczy stworzyć menu i animacje i już mamy gre.... :blaga:

oczywiscie mozna robic kolejne samoloty zmieniajac tylko nazwe a odnosimy sie do nich tak samo

samolot F16; 
F16.w_gore(500); 
F16.w_dol(100); 

F16.podaj_wysokosc();     //wynik powinien wyjsc ze jestesmy na 400 <img src='http://amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />


#2 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1339
Godlike

  • Postów:3556
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 25.10.2010 07:19

string to klasa a nie wbudowany typ danych
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#3 pAC

    Wszechobecny

  • Zbanowany

Reputacja: 87
Zaawansowany

  • Postów:425
  • Steam:steam
  • Lokalizacja:Żagań
Offline

Napisano 25.10.2010 12:14

mozna tez powiedziedz ze string to łańcuchy znaków albo klasa sluzy do sterowania napisami ;)

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 25.10.2010 14:40

a dziedziczenie? funkcje wirtualne? no i taby ;)
  • +
  • -
  • 0

#5 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1339
Godlike

  • Postów:3556
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 25.10.2010 14:41

hmm w zasadzie to powinien napisac to w gotowych funkcjach bo to przyklad klasy a nie tutorial xD
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#6 kur3k

    Założyciel forum ;)

  • Przyjaciel

Reputacja: 28
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 01.12.2010 01:14

samolot tupolev; to nie czasem instancja klasy, nie jestem pewien, nie pisze w C++ :)

fajny tut dot. OPP Metody i atrybuty klas - a metody i atrybuty instancji ( w python ), na początek styka :)
  • +
  • -
  • 0

#7 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1339
Godlike

  • Postów:3556
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 01.12.2010 11:01

tupolev to obiekt(instancja/egzemplarz) klasy samolot

// nie uzywa sie nazwy metody tylko funkcje skladowe szczegolnie jesli piszesz w tutach
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#8 -PainKiller-

    Wszechobecny

  • Autor tematu
  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 01.12.2010 16:57

// nie uzywa sie nazwy metody tylko funkcje skladowe szczegolnie jesli piszesz w tutach

nie wiem kto tak ustalił ale przypuszczam że to jedynie Twoje zdanie do którego oczywiście się nie przystosuję, nawet ludzie pracujacy w tym fachu mówią "metoda"

#9 kur3k

    Założyciel forum ;)

  • Przyjaciel

Reputacja: 28
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 04.12.2010 01:26

G[O]Q nie wiem, ale u mnie na studiach każdy używa metoda/w każdej książce z OPP mam napisane metoda. Ale funkcja składowa też pewnie poprawnie, metoda == funkcja, a każda funkcja jest składową klasy.

Tak naprawdę śmieszą mnie Wasze tuty na temat programowania, używasz słowa konstruktor a nie piszesz czym jest ? Dodajesz kod, a nie lepiej skupić się na czysto teoretycznym podejściu, wypocić temat, a kod na końcu ?
  • +
  • -
  • 0

#10 kur3k

    Założyciel forum ;)

  • Przyjaciel

Reputacja: 28
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 08.03.2011 22:01

Taka mała informacja do czytających ten artykuł, nie czytaj a jak przeczytałeś zrestartuj mózg. Programowanie zorientowane obiektowo jest tematem na wiele stron ... A nie na kilka zdań, i uważam, że ten artykuł Ci zamąci w głowie!
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: C++

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych