Snippets

d9k Wskazniki2

Created by d9k

File snippet.cpp Added

  • Ignore whitespace
  • Hide word diff
+#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;
+}
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.