Snippets

d9k Wskazniki2

Created by d9k
#include "stdafx.h"
#include <iostream>
using namespace std;

class Klasa
{
public:
	Klasa();
	Klasa(int i);
	Klasa(const Klasa& klasa);
	~Klasa();
	int sth;
};

Klasa::Klasa()
{
	sth = 0;
	cout << "Konstruktor()" << endl;
}

Klasa::Klasa(int i)
{
	sth = i;
	cout << "Konstruktor parametrowy (" << i << ")" << endl;
}

Klasa::Klasa(const Klasa & klasa)
{
	sth = klasa.sth;
	cout << "Konstruktor kopiujacy." << endl;
}

Klasa::~Klasa()
{
	cout << "Destruktor klasy z wartoscia: " << sth << endl;
}

void Zwieksz(int liczba)
{
	liczba = liczba + 10;
	cout << "Wewnatrz:" << liczba << endl;
}

static void PrzekazywanieZwykle()
{
	int liczba1 = 1;
	Zwieksz(liczba1);
	cout << liczba1 << endl;
}

void ZwiekszPrzezWskaznik(int *wskaznikNaLiczba)
{
	*wskaznikNaLiczba = *wskaznikNaLiczba + 10;
}

static void PrzekazywaniePrzezWskaznik()
{	
	cout << "Przez wartosc: " << endl;
	int liczba1 = 1;
	ZwiekszPrzezWskaznik(&liczba1);
	cout << liczba1 << endl;

	cout << "Przez wartosc, wskaznik bardziej jawnie: " << endl;
	int liczba2 = 2;
	int *wskaznikNaLiczba = &liczba2;
	ZwiekszPrzezWskaznik(wskaznikNaLiczba);
	cout << liczba2 << endl;
	cout << *wskaznikNaLiczba << endl;
}

void ZwiekszPrzezReferencje(int &liczba)
{
	liczba = liczba + 10;
}

static void PrzekazywaniePrzezReferencje()
{
	cout << endl << "Przez referencje: " << endl;
	int liczba1 = 1;
	ZwiekszPrzezReferencje(liczba1);
	cout << liczba1 << endl;

	cout << endl << "Przez referencje, referencja bardziej jawnie: " << endl;
	int liczba2 = 2;
	int &referencjaNaLiczba = liczba2;
	ZwiekszPrzezReferencje(referencjaNaLiczba);
	cout << liczba2 << endl;
	cout << referencjaNaLiczba << endl;
}

void PrzekazKlase(Klasa klasa)
{
	klasa.sth = 777;
}

void PrzekazKlasePrzezReferencje(Klasa &klasa)
{
	klasa.sth = 888;
}

void PrzekazKlasePrzezWskaznik(Klasa *klasa)
{
	(*klasa).sth = 999;
}

static void PrzekazywanieKlas()
{
	cout << endl << "Przyklad 1: " << endl;
	Klasa zmiennaTypuKlasowego1;
	PrzekazKlase(zmiennaTypuKlasowego1);
	cout << "zmiennaTypuKlasowego po przekazaniu przez wartosc: " 
		<< zmiennaTypuKlasowego1.sth << endl;

	cout << endl << "Przyklad 2: " << endl;
	Klasa zmiennaTypuKlasowego2;
	PrzekazKlasePrzezReferencje(zmiennaTypuKlasowego2);
	cout << "zmiennaTypuKlasowego po przekazaniu przez referencje: " 
		<< zmiennaTypuKlasowego2.sth << endl;
	
	cout << endl << "Przyklad 3: " << endl;
	Klasa zmiennaTypuKlasowego3;
	PrzekazKlasePrzezWskaznik(&zmiennaTypuKlasowego3);
	cout << "zmiennaTypuKlasowego po przekazaniu przez wartosc-wskaznik: " 
		<< zmiennaTypuKlasowego3.sth << endl;

	cout << endl;
}

int main()
{
	PrzekazywanieKlas();
	return 0;
}

Comments (0)