OSDev

для всех
Текущее время: 10 дек 2018, 17:12

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 285 ]  На страницу Пред.  1 ... 16, 17, 18, 19, 20, 21, 22 ... 29  След.
Автор Сообщение
СообщениеДобавлено: 15 янв 2015, 22:17 
Аватара пользователя

Зарегистрирован: 17 фев 2013, 16:13
Сообщения: 163
А, вот оно что. Ну да, это похоже на то, что мне нужно. Только есть одна деталь: программист не должен задаваться вопросом о том, вызывает ли он функцию или метод или свойство. Для него всё должно быть одинаковым, то есть синтаксис обращения должен быть единым для любых членов класса.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 янв 2015, 23:05 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1357
Откуда: Зеленоград
Ну так программист и не задумывается: обращение к свойству синтаксически идёт, как к обычному полю, а уж что там в реальности происходит -- дело компилятора (и программиста, создающего класс, но не использующего этот класс).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 янв 2015, 16:56 
Аватара пользователя

Зарегистрирован: 17 фев 2013, 16:13
Сообщения: 163
Я имею в виду, что, например, в C++ обращение к функции-члену класса будет со скобками (), а обращение к переменной-члену класса - без них.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 янв 2015, 21:05 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1357
Откуда: Зеленоград
Ну так в Си++ со скобками может (и должно) быть не только обращение к методу. Грин как-то показывал мне абсолютно одинаковую запись, означающую в зависимости от объявлений три совершенно разные вещи. Правда, это давно было, а с Си++ я почти не работаю, так что не скажу сейчас, что это было. Но по-любому сишный (и порождённый от него си++нутый) синтаксис -- сущий кошмар.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 янв 2015, 16:39 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1070
Откуда: Балаково
Zealint писал(а):
Я имею в виду, что, например, в C++ обращение к функции-члену класса будет со скобками (), а обращение к переменной-члену класса - без них.

Не хорошо это, потому что функции и переменные это разные сущности в математике, и обозначаются по-разному.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 янв 2015, 19:34 
Аватара пользователя

Зарегистрирован: 17 фев 2013, 16:13
Сообщения: 163
Himik писал(а):
Не хорошо это, потому что функции и переменные это разные сущности в математике, и обозначаются по-разному.

Да, они и должны обозначаться по-разному, но если запретить обращение к переменным-членам класса в принципе, то останутся только функции, а к функциям всегда обращаемся через ().


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 янв 2015, 20:14 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1357
Откуда: Зеленоград
Как по мне, полностью запрещать обращения к полям класса неправильно; если нужен запрет, он благополучно достигается размещением полей в приватной части класса. А вот ввести свойства примерно как в Дельфях было бы очень полезно: с ними код читабельней, чем с вызовами методов get/set, как приходится делать в Це++.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 янв 2015, 22:13 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1070
Откуда: Балаково
В С++ функция int x(void) не конфликтует с одноимённой перегрузкой void x(int x_), поэтому приставок get и set не требуется. Почти красиво :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 янв 2015, 07:21 
Аватара пользователя

Зарегистрирован: 17 фев 2013, 16:13
Сообщения: 163
Himik писал(а):
В С++ функция int x(void) не конфликтует с одноимённой перегрузкой void x(int x_), поэтому приставок get и set не требуется. Почти красиво :)

И как Вы собираетесь назначать переменной новое значение?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 янв 2015, 12:47 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1070
Откуда: Балаково
Функциональным способом x(123), так же как методом SetX(123). Выглядит практически как конструктор объекта.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 285 ]  На страницу Пред.  1 ... 16, 17, 18, 19, 20, 21, 22 ... 29  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB