Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> типы переменных 
V
    Опции темы
MsLive
Дата 26.9.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.4.2008

Репутация: нет
Всего: нет



Всем привет!
Не замедлит ли компьютер если я поставлю огромные переменные типа public в основной класс (вызываемый всеми остальными) 
И вообще что дают переменные типа private; protected и т.д.(есть смысл их такими делать)
Заранее спасибо!
PM MAIL   Вверх
mrbrooks
Дата 26.9.2008, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Какие это переменные smile 
Не ребята слушайте давайте читать книги  smile 
Блин это разделы класса  smile

Добавлено через 1 минуту и 22 секунды
собственно как структур и объединений.
PM MAIL   Вверх
Lazin
Дата 26.9.2008, 16:28 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Цитата(MsLive @  26.9.2008,  15:48 Найти цитируемый пост)
Всем привет!
Не замедлит ли компьютер если я поставлю огромные переменные типа public в основной класс (вызываемый всеми остальными) 
И вообще что дают переменные типа private; protected и т.д.(есть смысл их такими делать)
Заранее спасибо! 

Привет smile 
[telepathic mode on]
Как правило не требуется создавать огромные классы, если у тебя в программе есть громадный класс, то стоит подумать о том, что-бы разбить его на несколько более ортогональных классов, каждый из которых отвечает за какую-то одну функцию.
Класс нельзя вызывать, можно создать экземпляр класса и вызывать его методы.
Насчет размера, если программа занимает несколько гигабайт, то это конечно-же приводит к тормозам, так-же не стоит размещать в стеке большие объекты, он не резиновый. В идеале, каждый процессор должен обрабатывать свой набор данных, желательно, что-бы эти данные представляли из себя непрерывную область памяти, не превышающую размер cacheline-a процессора. 
[telepathic mode off]
Пожалуйста smile 
PM MAIL Skype GTalk   Вверх
Dov
Дата 26.9.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Lazin  smile   smile 


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
MsLive
Дата 26.9.2008, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.4.2008

Репутация: нет
Всего: нет



Цитата

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

Класс я создаю чтобы выполнял одну функцию состоящею из разных действий причем не хочу ставить функции типа int Get()(в целях неперезаполнения класса разными переменными превращающих класс в мусор);
Цитата

Класс нельзя вызывать, можно создать экземпляр класса и вызывать его методы.

я так делаю
Цитата

Насчет размера, если программа занимает несколько гигабайт, то это конечно-же приводит к тормозам, так-же не стоит размещать в стеке большие объекты, он не резиновый. 

это чтоли в класс для нажатия клавиш нельзя вставлять HD ролик?(весь класс сохраняется в кэш?) - я думаю что в кэш сохраняется только запрашиваемая область.

Ну так что, не ставить на переменные защищённый тип? 

Цитата

Какие это переменные 

я написал как проще,- можно и разделами класса назвать.
PM MAIL   Вверх
mes
Дата 26.9.2008, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(MsLive @  26.9.2008,  17:56 Найти цитируемый пост)
Ну так что, не ставить на переменные защищённый тип? 

В какой области объявлена переменная нисколко не отражается на скорости.
Деления на области нужно для программиста, чтоб он определил какие сущности нужно открыть для общественности, какие можно открывать наследнику, а какие оставить личными.
Подобное разграничение, при правильном использовании сильно облегчает работу программиста и освобождает его мозг для полезной работы. Чтоб правильно использовать лучше прочитать книжку по ООП, так как в одной статье , а тем более в одном форумном выскзывании не описать.

В двух словах самое основное:

Есть объект и есть блок данных. 
Блок данных это несколько простых типов сгрупированных в одной структуре - тут все данные должны быть открытые.

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

smile

Это сообщение отредактировал(а) mes - 26.9.2008, 21:30


--------------------
PM MAIL WWW   Вверх
MsLive
Дата 26.9.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.4.2008

Репутация: нет
Всего: нет



Цитата(mes @ 26.9.2008,  21:28)
Цитата(MsLive @  26.9.2008,  17:56 Найти цитируемый пост)
Ну так что, не ставить на переменные защищённый тип? 

В какой области объявлена переменная нисколко не отражается на скорости.
Деления на области нужно для программиста, чтоб он определил какие сущности нужно открыть для общественности, какие можно открывать наследнику, а какие оставить личными.
Подобное разграничение, при правильном использовании сильно облегчает работу программиста и освобождает его мозг для полезной работы. Чтоб правильно использовать лучше прочитать книжку по ООП, так как в одной статье , а тем более в одном форумном выскзывании не описать.

В двух словах самое основное:

Есть объект и есть блок данных. 
Блок данных это несколько простых типов сгрупированных в одной структуре - тут все данные должны быть открытые.

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

smile

Большое спасибо за ответ!  smile 
Но если это для удобности, тогда почему когда я нажимаю
"." или "->" то появляются в листе и protected переменные?
Я больше времени уделяю коментированости, от части меня
раздражает когда разработчики программ в сдк вставляют
защищенные переменные- которые есть но получить
доступ к ним не могу(особенно когда это необходиммо :( ).
PM MAIL   Вверх
Lazin
Дата 26.9.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Цитата(MsLive @  26.9.2008,  22:03 Найти цитируемый пост)
Я больше времени уделяю коментированости, от части меня
раздражает когда разработчики программ в сдк вставляют
защищенные переменные- которые есть но получить
доступ к ним не могу(особенно когда это необходиммо :( ). 

в смысле коментариям?
если член класса объявлен как private, значит разработчик хотел, что-бы вы не смогли получить доступ к этому члену класса
если-же член класса объявлен как protected, значит разработчик захотел, что-бы доступ к этому члену класса смогли получить только классы, наследующие от данного, тоесть его потомки
PM MAIL Skype GTalk   Вверх
mes
Дата 26.9.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(MsLive @  26.9.2008,  22:03 Найти цитируемый пост)
 то появляются в листе и protected переменные?

это особенности студии и тоже выполнено для удобства - к процессу компиляции данный "эффект" отношения не имеет.

Добавлено через 1 минуту и 13 секунд
Цитата(MsLive @  26.9.2008,  22:03 Найти цитируемый пост)
в сдк вставляют
защищенные переменные- которые есть но получить
доступ к ним не могу(особенно когда это необходиммо :( )

Наследуйтесь и получите доступ к ptotected секции


--------------------
PM MAIL WWW   Вверх
J0ker
Дата 26.9.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(MsLive @  26.9.2008,  22:03 Найти цитируемый пост)
Но если это для удобности, тогда почему когда я нажимаю
"." или "->" то появляются в листе и protected переменные?

Потому, что студия не в курсе, в каком вы в данный момент контексте. А сущности с разными правами доступа обозначаются в выпадающем списке по разному - этого вполне достаточно.

Цитата(MsLive @  26.9.2008,  22:03 Найти цитируемый пост)
от части меня
раздражает когда разработчики программ в сдк вставляют
защищенные переменные- которые есть но получить
доступ к ним не могу(особенно когда это необходиммо :( ). 

ну вы, блин, даете. А что если от этой переменной зависит целостность объекта (как оно обычно и бывает). Ну редставьте, что у динамического вектора публичный размер. К сожалению в текущем стандарте не реализованы праперти...


--------------------
user posted image
PM MAIL   Вверх
MsLive
Дата 27.9.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.4.2008

Репутация: нет
Всего: нет



Спасибо за ответы smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.