Zaprzyjaźnienie klas

0

Witam,
w ramach ćwiczeń napisałem taki program. I nie wiem dlaczego nie chce działać. W programie chodzi o to, żeby zaprzyjaźnić jedną klasę z druga i wyświetlić składniki prywatne klasy Karolina za pomocą funkcji składowej klasy Szymon. Czytałem w książce i zrozumiałem to tak (proszę o poprawienie jeśli źle to rozumie) że jak zrobię tak:

class Szymon
{
    int x, int y;
};

class Karolina 
{
    friend class Szymon;
    private:
    int a, int b;
};

to klasa Szymon będzie miała swobodny dostęp do prywatnych składników klasy Karolina.

Oto jak napisałem program:

#include<iostream>
#include<conio.h>
using namespace std;

class Szymon
{
	int x, int y;
	void pokaz1 (Karolina &d);
};

void Szymon :: pokaz1 (Karolina &d)
{
			d.a=20;
			d.b=20;
			cout << d.a;
			cout << d.b;
}

class Karolina
{
	friend class Szymon;

	private:
	int a, int b;

	public:
	Karolina(int f=14, int c=14):a(f),b(c){};
};

int main (void)
{
		Szymon m;
		karolina f;

		m.pokaz1(f);

		getch();
		return 0;
}
0

Najpierw definiujesz Szymon, później używasz Karolina w Szymon::pokaz1, a następnie definiujesz Karolina. Nie sądzisz, że kolejność definicji/użycia masz złą?


p.s. na przyszłość postaraj się opisywać problem nieco bardziej szczegółowo, bo 'nie działa' niewiele mówi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1