Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Доступ объектов класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблемы компилятора с++ http://www.cyberforum.ru/cpp-beginners/thread353456.html
Всем доброго времени суток. Возникла проблема серьезная. При компиляции кода в netbeans 7.01. с компилятором MinGW пишет Error Makefile 110 : Colon expexted Error Makefile 140 Command syntax error
C++ Найти все варианты перебора циклов Народ помогите написать часть программы кто сможет Условие: Найти все варианты перебора циклов с условием что A>C>B к примеру... Одного цикла достаточно и Найти max и min значение.......... http://www.cyberforum.ru/cpp-beginners/thread353452.html
Помогите разобраться с сутью задачи. C++
Книга: Стивен Прата "Язык программирования С++. Лекции и упражнения. Учебник." 2005г. Глава 8. Посвящена работе с функциями. Попалась задача. Скрин прилагаю. Не могу понять о чём идёт речь. Что...
Вывести название соответствующего введенному числу месяца C++
Написать программу, которая по заданному числу (от 1 до 12) выводит название соответствующего ему месяца
C++ Реализовать вывод. http://www.cyberforum.ru/cpp-beginners/thread353422.html
Нужно без использования массивов, только используя циклы, на Cи, реализовать вывод вот такой таблицы. Закономерность вроде понятна, но практически реализовать никак не получается. A B C D E Z B C...
C++ Проблема перегрузки и деструктора Собственно хотел перегрузить оператор "<<" для пользовательского вывода. Просто взял и скопировал кусок кода из написанной ранее функции вывода в функцию перегруза, все бы прекрасно, но при вызове... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,847
18.09.2011, 23:45
для спасибы кнопка есть

Добавлено через 3 минуты
О друзьях класса

Обычно единственный способ, с помощью которого ваши программы могут обращаться к частным элементам класса, заключается в использовании интерфейсных функций. В зависимости от использования объектов программы иногда может быть удобным (или более эффективным с точки зрения скорости вычислений) разрешить одному классу обращаться к частным элементам другого. Для этого вы должны информировать компилятор C++, что класс является другом (friend). Компилятор, в свою очередь, позволит классу-другу обращаться к частным элементам требуемого класса. Чтобы объявить класс другом, поместите ключевое слово friend и имя класса-друга в секцию public определения класса, как показано ниже:

class abbott

{
public:
friend costello;
// Общие элементы
private:
// Частные элементы
};
http://www.programmersclub.ru/28/

Добавлено через 3 минуты
класса, вы обеспечиваете классу-другу доступ к частным элементам данных этого другого класса. Вы также знаете и то, что чем больше доступа к частным данным класса, тем больше шансов на внесение ошибок в программу. Следовательно, если доступ к частным данным другого класса необходим только нескольким функциям класса, C++ позволяет указать, что только определенные функции дружественного класса будут иметь доступ к частным элементам. Предположим, например, что класс librarian, представленный в предыдущей программе, содержит много разных функций. Однако предположим, что только функциям change_catalog и get_catalog необходим доступ к частным элементам класса book. Внутри определения класса book мы можем ограничить доступ к частным элементам только этими двумя функциями, как показано ниже:

class book

{
public:
book(char *, char *, char *);
void show_book(void);
friend char *librarian::get_catalog(book);
friend void librarian: :change_catalog( book *, char *);
private:
char title[64];
char author[ 64 ];
char catalog[64];
};

Как видите, операторы friend содержат полные прототипы всех дружественных функций, которые могут напрямую обращаться к частным элементам.

О функциях-друзьях

Если ваша программа использует друзей для доступа к частным данным класса, вы можете ограничить количество функций-элементов класса-друга, который может обращаться к частным данным, используя дружественные функции. Для объявления функции-друга укажите ключевое слово friend, за которым следует полный прототип, как показано ниже:

public:
friend class_name::function_name(parameter types);

Только функции-элементы, указанные как друзья, могут напрямую обращаться к частным элементам класса, используя оператор точку.
от туда же
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru