256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
||||||
1 | ||||||
насколько это соответствует стандарту?29.12.2012, 05:53. Показов 778. Ответов 11
Метки нет (Все метки)
0
|
29.12.2012, 05:53 | |
Ответы с готовыми решениями:
11
Соответствует ли код стандарту? Комментирование программ. Насколько это важно? Соответствует ли это стандарту С? какому стандарту С++ соответствует minGW |
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
29.12.2012, 06:02 | 2 |
Давайте для тупых: при чем тут стандарт и что конкретно смущает в коде?
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
||||||
29.12.2012, 06:06 [ТС] | 3 | |||||
поправочка
изменение поля private одного объекта, методом вызова другого объекта.
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
29.12.2012, 06:09 | 5 |
Вполне допустимо. Спецификаторы доступа всего лишь ограничвают возможность прямого обращения к полям объекта. В данном случае - вернули адрес, с помощью указателя делаем что хотим, все ок.
1
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
|
29.12.2012, 06:12 [ТС] | 6 |
спасибо. Я уже поняла, что поле private это защита от собственных ошибок, а не внешних угроз. Иначе говоря единицей защиты является не объект, а тип.
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
29.12.2012, 06:20 | 8 |
activnaya, если хотите защититься в данном случае, используйте указатели на константу.
Добавлено через 49 секунд Конечно. Но тут вопрос не в том, правильно ли так делать, а в том, должен ли вообще данный код работать так, как работает.
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
|
29.12.2012, 06:31 [ТС] | 9 |
ну моя логика такова: поле private изменяется с помощью метода класса, а метод класса имеет доступ к полю private, следовательно не имеет значения из какого именно объекта был вызван метод и это совершенно "законно".
Добавлено через 2 минуты а вообще все глобальней, ну как я в #6 писала.
0
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
29.12.2012, 07:01 | 10 |
мб инкапсуляция нарушена, но я вот приват даю опасным полям, как массив, и обеспечиваю к ним доступ через get/set с проверкой индекса, по моему все логично, либо если переменной нужен обработчик какой либо, по этому вроде все нормально у ТС'а
0
|
29.12.2012, 14:53 | 11 | |||||
Ну во первых так можно писать только для поддержания общего интерфейса кода
Во вторых, не нарушена если get() и set() сделать виртуальными, а в производных классах добавить обработку последействий и проверок. Единственное что смущает: почему через указатели ? Добавлено через 4 минуты
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
16.01.2013, 00:38 | 12 |
activnaya, вообще возвращая указатель стоит задуматься о добавлении спецификатора const.
Лень лезть в стандарт. Но по моему ничего такого нет. Указатель валидный. int x; не объявлено как const. Просто объект это что. Это как набор полей. Мы имеем указатель на объект. Как правиль зачастую первое поле это скрытый член указатель на vtable. Поэтому обычный метод в машинном представлении - это его адрес и при вызове мы просто делаем call(не jmp). У поля тоже есть адрес. Добавлено через 3 минуты Даже такой код прокатит. Но здесь все очевидно.http://ideone.com/5i96VN
0
|
16.01.2013, 00:38 | |
16.01.2013, 00:38 | |
Помогаю со студенческими работами здесь
12
Какова вероятность того, что устройство соответствует стандарту? Насколько приведенная абстрактная реализация соответствует шаблону MVVM Насколько это реально??? Редирект. Насколько это законно? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |