logo

Obiekty - podstawowe informacje


Programowanie obiektowe — podstawowe wiadomości w pigułce

Programowanie obiektowe to metoda budowania programów komputerowych za pomocą obiektów. Obiekt łączy ze sobą grupę danych – często o różnych typach – i operujący na nich zestaw funkcji. Inaczej można powiedzieć, że obiekt zawiera dane składowe (pola) oraz funkcje składowe (metody) połączone w spójny element programu. Dane składowe przechowują stan obiektu, a funkcje realizują określoną funkcjonalność.

Typem obiektu jest klasa. Klasa jest schematem budowy każdego obiektu danej klasy. Każdy obiekt danej klasy stanowi jej instancję.

Klienci to część programu korzystająca z danego obiektu i nie należąca do klasy tego obiektu.

Główne reguły programowania obiektowego:



Przykład 1. deklaracji kasy Czas i tworzenia obiektów tej klasy

Plik nagłówkowy klasa_czas.h zawierający deklarację klasy


#pragma once


//deklaracja klasy
class Czas
{
	public:
	
	void ustawCzas(int g, int m, int s ) 
	{ godz = g; min = m; sek = s; }
	
	void drukujCzas();

	private:
	
	int godz, min, sek;
}; // nigdy nie zapominac o ;

Plik czas.cpp zawierający implementację niektórych funkcji składowych klasy Czas



#include<iostream>
#include "czas.h"

//definicja (implementacja) funkcji skladowej drukujCzas()
void Czas::drukujCzas()
{
	std::cout << godz << ":" << min << ":" << sek << std::endl;
}

Plik klasa_czas.cpp zawierający funkcję main


#include<cstdlib>
#include<iostream>
#include "czas.h"

using namespace std;


int main(int argc, char *argv[])
{
	Czas t;
	t.ustawCzas(12, 32, 0);
	t.drukujCzas();

	system("pause");
	return 0;
};

Nie zapomnij postawić średnika po nawiasie zamykającym deklarację klasy.

Pozostaw pustą linię między defnicjami metod, to podniesie czytelność programu.

Aby uniknąć dwuznaczności nie używaj tych samych nazw dla argumentów (aktualnych) przekazanych do funkcji i dla parametrów występujących w definicji.

Zgodnie z regułami programowania obiektowego pola (dane składowe) klasy powiny znaleźć się w sekcji private:, natomiast metody (funkcje składowe) - w sekcji public:. Jest właściwe deklarowanie niektórych funkcji jako private:, jeśli mają być dostępne tylko dla innych metod tej samej kalsy.

Przykład 2. Definicja referencji i wskaźnika do obiektu klasy Czas

Czas t;
	
//referencja do obiektu t klasy czas;
Czas & refT = t;
t.ustawCzas(13, 30, 0);
refT.drukujCzas();

//wskaznik do obiektu t
Czas * wskT = &t;
wskT->ustawCzas(11, 20, 15);
t.drukujCzas();

Przykład 3. Wskaźnik do nowego obiektu klasy Czas

	// Nowy obiekt na ktory wskazuje wskTStart
	Czas * wskTStart = new Czas;
	wskTStart->ustawCzas(10, 15, 0);
	wskTStart->drukujCzas();
	delete wskTStart;

logo