Snippets

d9k Wskaźniki 1

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

static void Referencja()
{
	int zmiennaInt1 = 1;
	cout << zmiennaInt1 << endl; //1

	int &referencja = zmiennaInt1;
	cout << zmiennaInt1 << endl; // 1
	referencja = 2;
	cout << referencja << endl; // wypisuje 2
	cout << zmiennaInt1 << endl; // wypisuje 2. Wartość zmiennej zmiennaInt1 została podmieniona.
}

static void Wskaznik()
{
	int zmiennaInt1 = 1;
	int zmiennaInt2 = 2;
	cout << zmiennaInt1 << endl; //1
	cout << zmiennaInt2 << endl; //2

	int* wskaznikNaInt = NULL;
	cout << wskaznikNaInt << endl; //wartością wskaznikNaInt jest adres: 00000000
	//cout << *wskaznikNaInt << endl; //WYJATEK. Wskaznik nie byl inicjalizowany.

	wskaznikNaInt = &zmiennaInt1; //wartością wskaznikNaInt jest adres, gdzie znajduje sie zmiennaInt1 
	cout << wskaznikNaInt << endl; //adres zmiennaInt1, tu: 002BFBC4
	cout << *wskaznikNaInt << endl; //wyluskanie wartosci spod adresu. Wynik: 1

	wskaznikNaInt = &zmiennaInt2; //wartością wskaznikNaInt jest adres, gdzie znajduje sie zmiennaInt2 
	cout << wskaznikNaInt << endl; //adres zmiennaInt2, tu: 002BFBB8
	cout << *wskaznikNaInt << endl; //wyluskanie wartosci spod adresu. Wynik: 2
}

static void Operatory()
{
	int zmiennaInt1 = 1;
	cout << "zmiennaInt1=" << zmiennaInt1 << endl; // 1
												   //cout << *zmiennaInt1 << endl; // nie da sie
	cout << "&zmiennaInt1=" << &zmiennaInt1 << endl; // adres 0044F9D8.

	int &referencja = zmiennaInt1;
	cout << "referencja=" << referencja << endl; // 1
												 //cout << *referencja << endl; // nie da sie
	cout << "&referencja=" << &referencja << endl; // 0044F9D8 - ten sam adres, co adres &zmiennaInt1

	int *wskaznikNaInt;
	wskaznikNaInt = &zmiennaInt1;
	cout << "wskaznikNaInt=" << wskaznikNaInt << endl; // adres 0044F9D8
	cout << "*wskaznikNaInt=" << *wskaznikNaInt << endl; // 1
	cout << "&wskaznikNaInt=" << &wskaznikNaInt << endl; // adres 0044F9D8
}

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 kopiujący." << endl;
}

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

static void WskaznikiKlasowe()
{
	cout << "Wskazniki typu klasowego: " << endl;
	
	Klasa * wskaznikTypuKlasowego = new Klasa;
	delete wskaznikTypuKlasowego;

	Klasa * wskaznikTypuKlasowego2 = new Klasa(5);
	delete wskaznikTypuKlasowego2;

	cout << endl << "Zmienne typu klasowego: " << endl;

	Klasa zmiennaTypuKlasowego;

	Klasa zmiennaTypuKlasowego2(2);
}

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

Comments (0)