Инструменты пользователя

Инструменты сайта


дружественные_классы

Назад

Некоторым классам может понадобиться доступ к закрытым данным друг друга.Например, классу «дерево» может понадобиться доступ к закрытым полям его узлов .В этом случае необходимо объявить дружественный класс внутри определения класса.

Дружественная связь между классами является самой сильной.Реализации классов оказываются связанными, что противоречит принципу инкапсуляции.Не используйте дружественные классы до тех пор, пока их использование не окажется единственным способом решения задачи

class Bar;
 
class Foo
{
friend class Bar;
private:
	int data;
};
 
class Bar
{
	void Do(Foo & foo)
	{
		foo.data = 1;
	}
};