Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.06.2008, 22:21   #1
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию Так ли нужны эти Get и Set методы?

Мне интересно узнать мнение программистов которые уже достаточно программируют. пользуетесь ли вы Get или Set методами для защиты в класах данные ну чтоб управлять точнее доступ к приватным данным? Так ли нужны эти методы или нет? А то на них уходит довольно много кода ну пока хорошого применения я им невижу если честно..Раскажите поясните пожалуйста.
#include <мозг.h>
Руслантус вне форума
Старый 13.06.2008, 23:32   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

допустим для класса "Окно" есть public строка text. обходимся без метода SetText и напрямую работаем с аттрибутом. Как ловить момент, когда заголовок поменяли и соответственно окошко бы перерисовать нужно?
pu4koff вне форума
Старый 13.06.2008, 23:37   #3
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

непонял тебя я чет
#include <мозг.h>
Руслантус вне форума
Старый 13.06.2008, 23:53   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

ну если я правильно понял, Вас не устраивает данный подход:
Код:
class Окно
{
...
private:
  строка текст;
public:
  строка GetText() {return текст;}
  void SetText(строка значение)
  {
    текст = значение;
    перерисовать окно;
  }
}
а хочется так:
Код:
class Окно
{
...
public:
  строка текст;
}
только вот как мне поймать момент, когда мы текст изменили, чтобы окошко таки перерисовать?
pu4koff вне форума
Старый 13.06.2008, 23:58   #5
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

ну можно отловаить неправельное значение в Сет методе. серовно я непонил если честно что ты этим хочеш сказатьвот лично ты когда программируеш классы ты пользуешся гет и сет методами или ты делаеш все публично?
#include <мозг.h>
Руслантус вне форума
Старый 14.06.2008, 00:08   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

всегда get и set. public аттрибуты принципиально не держу. изменение их значений через методы, даёт больше гарантий, что будет записано то, что надо, а не какое-то "левое" значение, из-за которого объект себя поведёт неправильно
pu4koff вне форума
Старый 14.06.2008, 08:55   #7
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

ну вообще так я понил это поможет особено в случае когда несколько программистов чтоб вдруг из клиентской программы неизменить переменую из класса или недопустить чтоб попало неверное число но помогает ли это от воздействия чегонибудь другова допустим от взломщиков програм и т.д?Когда допустим есть полностью приватная переменая которую недолжны видеть и изменять и там храниться чтонить важное.Поможет ли это
#include <мозг.h>
Руслантус вне форума
Старый 14.06.2008, 15:49   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

от взломщиков не помогет
pu4koff вне форума
Старый 14.06.2008, 20:46   #9
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Да, нужны. Помещать данные в паблик без уважительных причин никогда не стоит.

Использование функций-членов для скрытия данных всегда (за очень редким исключением) оправдывают себя. Порой надо не только проверить данные на валидность, но и после произвести еще какие-нибудь действия. И лучше все это прописать в одном месте, чем потом каждый раз прописывать это еще раз + бояться забыть про это.

Не стоит забывать о таких вещах, как инкапсуляция и полиморфизм.
filosof_x86 вне форума
Старый 15.06.2008, 06:10   #10
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

понятно. всем спасибо за ответ!
#include <мозг.h>
Руслантус вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы автозагрузки Лубышев Операционные системы общие вопросы 12 01.07.2008 20:53
Численные методы в Дельфи UserOK Общие вопросы Delphi 3 26.06.2008 12:05
Методы шифрования D@rk M@k Свободное общение 3 27.02.2008 13:56
Усовершенствованные методы сортировок -=Domestos=- Помощь студентам 1 20.12.2006 20:51