Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Классы

Ответить
Настройки темы
C/C++ - [решено] Классы

Аватара для COM-BAT

Пользователь


Сообщения: 84
Благодарности: 4


Конфигурация

Профиль | Отправить PM | Цитировать


Обясните пожалуста что записивается в public а что в private ?

Отправлено: 15:37, 08-01-2013

 

Аватара для deviance

Пользователь


Сообщения: 123
Благодарности: 43

Профиль | Отправить PM | Цитировать


COM-BAT, в private записываются, например, переменные которые не должны быть модифицированы напрямую или функции, которые вызываться извне не должны. В public - все остальное.
Например, класс, описывающий строку, может выглядеть так:
Код: Выделить весь код
class String
{
public:
        char* Get(void);
	char* New( char* str );
	char* Append( char* str);
private:
	char*  str;
	size_t size;
};
В public - функции, которые манипулируют переменными из private.
В private - переменные, присваивать значение которым напрямую нежелательно, чтобы не нарушить работу.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:20, 08-01-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


public, protected и private - это модификаторы, указывающие, кто имеет доступ к переменным и функциям класса. Наличие этих модификаторов связано с понятниями наследования и дружбы.
MSDN нереально рулит
кстати, в с# их будет побольше.
а помещают туда обычно то, что должно быть скрыто от внешнего вызова, чтения, записи и т.п. Скажем, если необдуманное изменение какойто переменной класса может привести к краху, то целесообразно закрыть доступ к ее непосредственному изменению и создать public функцию, которая умеет грамотно менять этот параметр.

Последний раз редактировалось Beyound, 08-01-2013 в 18:18.


Отправлено: 18:12, 08-01-2013 | #3


Пользователь


Сообщения: 121
Благодарности: 35

Профиль | Отправить PM | Цитировать


Цитата Beyound:
Наличие этих модификаторов связано с понятниями наследования и дружбы. »
Не совсем. public и private относятся к понятию инкапсуляции. Один из базовых принципов ООП - внутренняя структура объекта должна быть скрыта от пользователя (в смысле того, кто использует класс в своих программах). В public описывается интерфейс класса, а в private - внутренняя структура.
Цитата Beyound:
MSDN нереально рулит »
Но не следует забывать, что это именно MSDN. Полностью доверять этому источнику можно только при разработке под Windows и используя средства разработки от MS.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:20, 09-01-2013 | #4


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Если еще проще, то при создании функций класса(сейчас я говорю про C#), всё, что не нужно видеть извне класса, делаем Private. А функции, которые будут использоваться извне, делаем Public.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 15:43, 11-01-2013 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Классы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
классы farik Программирование и базы данных 5 14-11-2012 13:17
[решено] IE6 и псевдо классы darksmoke Вебмастеру 1 18-03-2010 10:04
Как выбрать классы на нижестоящем сервере? plvtor WSUS 1 24-03-2009 15:49
*Теория* | Классы C++ для представления winapi32 pva Программирование и базы данных 5 11-04-2005 11:28
MFC - Как подключить MFC классы? Sharkky Программирование и базы данных 1 17-03-2004 14:04




 
Переход