Показать полную графическую версию : [решено] Классы
Обясните пожалуста что записивается в public а что в private ?
deviance
08-01-2013, 17:20
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 - переменные, присваивать значение которым напрямую нежелательно, чтобы не нарушить работу.
public, protected и private - это модификаторы, указывающие, кто имеет доступ к переменным и функциям класса. Наличие этих модификаторов связано с понятниями наследования и дружбы.
MSDN нереально рулит (http://msdn.microsoft.com/en-us/library/zsc61976(v=vs.71).aspx)
кстати, в с# их будет побольше.
а помещают туда обычно то, что должно быть скрыто от внешнего вызова, чтения, записи и т.п. Скажем, если необдуманное изменение какойто переменной класса может привести к краху, то целесообразно закрыть доступ к ее непосредственному изменению и создать public функцию, которая умеет грамотно менять этот параметр.
Наличие этих модификаторов связано с понятниями наследования и дружбы. »
Не совсем. public и private относятся к понятию инкапсуляции. Один из базовых принципов ООП - внутренняя структура объекта должна быть скрыта от пользователя (в смысле того, кто использует класс в своих программах). В public описывается интерфейс класса, а в private - внутренняя структура.
MSDN нереально рулит »
Но не следует забывать, что это именно MSDN. Полностью доверять этому источнику можно только при разработке под Windows и используя средства разработки от MS.
Delirium
11-01-2013, 15:43
Если еще проще, то при создании функций класса(сейчас я говорю про C#), всё, что не нужно видеть извне класса, делаем Private. А функции, которые будут использоваться извне, делаем Public.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.