![]() |
|
Модераторы: bsa |
![]()
|
|
| MsLive |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 1.4.2008 Репутация: нет Всего: нет |
Всем привет!
Не замедлит ли компьютер если я поставлю огромные переменные типа public в основной класс (вызываемый всеми остальными) И вообще что дают переменные типа private; protected и т.д.(есть смысл их такими делать) Заранее спасибо! |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
Какие это переменные
Не ребята слушайте давайте читать книги Блин это разделы класса Добавлено через 1 минуту и 22 секунды собственно как структур и объединений. |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
Привет [telepathic mode on] Как правило не требуется создавать огромные классы, если у тебя в программе есть громадный класс, то стоит подумать о том, что-бы разбить его на несколько более ортогональных классов, каждый из которых отвечает за какую-то одну функцию. Класс нельзя вызывать, можно создать экземпляр класса и вызывать его методы. Насчет размера, если программа занимает несколько гигабайт, то это конечно-же приводит к тормозам, так-же не стоит размещать в стеке большие объекты, он не резиновый. В идеале, каждый процессор должен обрабатывать свой набор данных, желательно, что-бы эти данные представляли из себя непрерывную область памяти, не превышающую размер cacheline-a процессора. [telepathic mode off] Пожалуйста |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
Lazin
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| MsLive |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 1.4.2008 Репутация: нет Всего: нет |
Класс я создаю чтобы выполнял одну функцию состоящею из разных действий причем не хочу ставить функции типа int Get()(в целях неперезаполнения класса разными переменными превращающих класс в мусор);
я так делаю
это чтоли в класс для нажатия клавиш нельзя вставлять HD ролик?(весь класс сохраняется в кэш?) - я думаю что в кэш сохраняется только запрашиваемая область. Ну так что, не ставить на переменные защищённый тип?
я написал как проще,- можно и разделами класса назвать. |
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
В какой области объявлена переменная нисколко не отражается на скорости. Деления на области нужно для программиста, чтоб он определил какие сущности нужно открыть для общественности, какие можно открывать наследнику, а какие оставить личными. Подобное разграничение, при правильном использовании сильно облегчает работу программиста и освобождает его мозг для полезной работы. Чтоб правильно использовать лучше прочитать книжку по ООП, так как в одной статье , а тем более в одном форумном выскзывании не описать. В двух словах самое основное: Есть объект и есть блок данных. Блок данных это несколько простых типов сгрупированных в одной структуре - тут все данные должны быть открытые. В объекте же наоборот все данные должны быть в private - области. Так же туда следует помещать все функции, которые обеспечивают внутреннию логику объекта. В protected помещаются те функции которые могут использоваться наследником для изменения поведения объекта. Ну а в public кидается интерфейс - те функции которые может использовать общественностж для управления объектом класса. Такие функции должны быть независимы к структуре класса. Т.е. пользователю для нормального пользования должно быть достаточно только описание public-части класса, и никакие изменения private-части не должны влиять на это. Это сообщение отредактировал(а) mes - 26.9.2008, 21:30 |
|||
|
||||
| MsLive |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 1.4.2008 Репутация: нет Всего: нет |
Большое спасибо за ответ! Но если это для удобности, тогда почему когда я нажимаю "." или "->" то появляются в листе и protected переменные? Я больше времени уделяю коментированости, от части меня раздражает когда разработчики программ в сдк вставляют защищенные переменные- которые есть но получить доступ к ним не могу(особенно когда это необходиммо :( ). |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
в смысле коментариям? если член класса объявлен как private, значит разработчик хотел, что-бы вы не смогли получить доступ к этому члену класса если-же член класса объявлен как protected, значит разработчик захотел, что-бы доступ к этому члену класса смогли получить только классы, наследующие от данного, тоесть его потомки |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
это особенности студии и тоже выполнено для удобства - к процессу компиляции данный "эффект" отношения не имеет. Добавлено через 1 минуту и 13 секунд
Наследуйтесь и получите доступ к ptotected секции |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
Потому, что студия не в курсе, в каком вы в данный момент контексте. А сущности с разными правами доступа обозначаются в выпадающем списке по разному - этого вполне достаточно. ну вы, блин, даете. А что если от этой переменной зависит целостность объекта (как оно обычно и бывает). Ну редставьте, что у динамического вектора публичный размер. К сожалению в текущем стандарте не реализованы праперти... |
|||
|
||||
| MsLive |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 1.4.2008 Репутация: нет Всего: нет |
Спасибо за ответы
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |