Форум разработчиков электроники ELECTRONIX.ru: Растолкуйте по шаблону С++ - Форум разработчиков электроники ELECTRONIX.ru

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Растолкуйте по шаблону С++ Rate Topic: -----

#16 User is offline   dxp Icon

  • Adept
  • PipPipPipPipPipPip
  • Group: Свой
  • Posts: 3 469
  • Joined: 06 декабря 04

Posted 27 июля 2018 - 13:05

Цитата(Kabdim @ Jul 27 2018, 16:15) <{POST_SNAPBACK}>
Да кмк здесь слово метод более употребительно чем там, но и там оно тоже используется.

Я вижу, вам тоже оно нравится (более коротко и/или привыкли).

Цитата(Kabdim @ Jul 27 2018, 16:15) <{POST_SNAPBACK}>
Из-за чего так? Кмк потому что методы вошли в общепринятую терминологию позже плюсов.

"Метод" (как и ООП) появился куда раньше плюсов. Обратите внимание, он говорит про Java и взял в кавычки, подчёркивая, что в плюсах далеко не все функции-члены являются методами.

Цитата(Kabdim @ Jul 27 2018, 16:15) <{POST_SNAPBACK}>
К тому же вошли в двух разных школах. В ораклово-явовской метод=вирутальная функция член, в майкрософто-решеточной (и дельфевской из которой решетка переняла многое) метод просто функция в классе. Поэтому прошу не утверждать что есть единая верная интерпретация.

Я ничего не утверждаю. Ну, разве что то, что термина "метод" в С++ нет вообще. Есть функция, функция-член, статическая функция-член, виртуальная функция-член. На последнюю можно отмапить термин "метод", переходя на ОО терминологию. Но тащить её дальше и обобщать - это как-то слишком.

Цитата(Kabdim @ Jul 27 2018, 16:15) <{POST_SNAPBACK}>
Вообще в оригинале абстрактного ОО (Smalltalk) метод диспетчеризуется по имени, о чем (и вообще о философии ОО применительно к плюсам) Страуструп рассуждает в What is ‘‘Object-Oriented Programming’’ - рекомендую прочитать.

Вот если вы пройдёте по вхождениям словам "method", то убедитесь, что Страуструп очень аккуратно использует терминологию, употребляя этот термин именно как синоним виртуальной функции-члена, например (стр. 20):

Цитата
This idea captures only part of the expressive
power of inheritance, but it is strongly encouraged by languages where every member function is virtual
(or a method)
.

«Отыщи всему начало, и ты многое поймёшь» К. Прутков
0

#17 User is offline   Kabdim Icon

  • Знающий
  • PipPipPipPip
  • Group: Свой
  • Posts: 558
  • Joined: 26 ноября 14

Posted 27 июля 2018 - 13:14

Цитата(dxp @ Jul 27 2018, 13:05) <{POST_SNAPBACK}>
"Метод" (как и ООП) появился куда раньше плюсов. Обратите внимание, он говорит про Java и взял в кавычки, подчёркивая, что в плюсах далеко не все функции-члены являются методами.

"Метод" как способ диспатча по строке с именем - да, но не то что вы сейчас называете методом. Почему вы из кавычек умудрились вытянуть этот скрытый смысл? Для меня кавычки это цитата, не более того. Которые в данном месте применили что бы подчеркнуть что это не официальный термин плюсов, а джавовский.
Цитата(dxp @ Jul 27 2018, 13:05) <{POST_SNAPBACK}>
На последнюю можно отмапить термин "метод", переходя на ОО терминологию.

Ну раз её можно "мапить", то почему бы не отмапить в шарпнутую плоскость?
Цитата(dxp @ Jul 27 2018, 13:05) <{POST_SNAPBACK}>
Вот если вы пройдёте по вхождениям словам "method", то убедитесь, что Страуструп очень аккуратно использует терминологию, употребляя этот термин именно как синоним виртуальной функции-члена, например (стр. 20):

Собственно я и не спорил что Страуструп использует слово метод и в том и в другом смысле. Но из пропузалов в стандарт слово метод вымарывается нещадно и в значении витруальной функции члена тоже. Последнее несложно увидеть в репозиториях пропоузалов.
0

#18 User is offline   halfdoom Icon

  • Профессионал
  • PipPipPipPipPip
  • Group: Свой
  • Posts: 1 003
  • Joined: 20 января 05

Posted 27 июля 2018 - 13:59

Видимо не стоит буквально переводить "method" как "метод". В русском языке слово "метод" в контексте класса/объекта устаканилось для обозначения статической/виртуальной/обычной функции или процедуры, вложенной в контекст класса. В англоязычных источниках, используется member function, который, как уже заметили, несколько не благозвучен в буквальном переводе.
0

#19 User is offline   dxp Icon

  • Adept
  • PipPipPipPipPipPip
  • Group: Свой
  • Posts: 3 469
  • Joined: 06 декабря 04

Posted 27 июля 2018 - 14:19

Цитата(halfdoom @ Jul 27 2018, 17:59) <{POST_SNAPBACK}>
Видимо не стоит буквально переводить "method" как "метод". В русском языке слово "метод" в контексте класса/объекта устаканилось для обозначения статической/виртуальной/обычной функции или процедуры, вложенной в контекст класса.

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

Цитата(halfdoom @ Jul 27 2018, 17:59) <{POST_SNAPBACK}>
В англоязычных источниках, используется member function

Полагаю, это потому, что они построже обращаются с терминологией.

Цитата(halfdoom @ Jul 27 2018, 17:59) <{POST_SNAPBACK}>
который, как уже заметили, несколько не благозвучен в буквальном переводе.

Хе. Ну, тогда и для членов-данных нужно тем более придумать левый синоним - ведь с данными-то всё ещё хуже (если там хоть функция-ч..., то данные чаще всего называют просто ч...). laughing.gif
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
0

#20 User is offline   halfdoom Icon

  • Профессионал
  • PipPipPipPipPip
  • Group: Свой
  • Posts: 1 003
  • Joined: 20 января 05

Posted 27 июля 2018 - 15:00

Цитата(dxp @ Jul 27 2018, 14:19) <{POST_SNAPBACK}>
обычные функции уже называют методами, то мне тогда совсем не понятно, почему именно методами


Имееются в виду не статические или виртуальные:

Код
class A
{
  void plain_method();
};


Цитата(dxp @ Jul 27 2018, 14:19) <{POST_SNAPBACK}>
Ну, тогда и для членов-данных нужно тем более придумать левый синоним - ведь с данными-то всё ещё хуже


Так их вроде так и называют — "(статические) данные класса".

Вот со свойствами из ОО-Паскаля или С-шарпа вышла накладка, т.к. понятие "свойства класса" выходит за рамки внутриклассовых синтаксических конструкций. В начале 90-х, некоторые придерживались кальки с английского "проперти", что в беглой речи тоже превращало property editor в не очень благозвучное слово.
0

#21 User is offline   dxp Icon

  • Adept
  • PipPipPipPipPipPip
  • Group: Свой
  • Posts: 3 469
  • Joined: 06 декабря 04

Posted 27 июля 2018 - 16:02

Цитата(halfdoom @ Jul 27 2018, 19:00) <{POST_SNAPBACK}>
Так их вроде так и называют — "(статические) данные класса".

Что-то вы совсем не о том. Члены-данные класса (class data member) и статические члены-данные класса - это две ба-альшие разницы.
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
0

#22 User is offline   halfdoom Icon

  • Профессионал
  • PipPipPipPipPip
  • Group: Свой
  • Posts: 1 003
  • Joined: 20 января 05

Posted 27 июля 2018 - 17:01

Цитата(dxp @ Jul 27 2018, 16:02) <{POST_SNAPBACK}>
Что-то вы совсем не о том. Члены-данные класса (class data member) и статические члены-данные класса - это две ба-альшие разницы.


Просто сокращенно написал, понятно, что два разных вида:

- данные класса;
- статические данные класса.


0

#23 User is offline   Forger Icon

  • Профессионал
  • PipPipPipPipPip
  • Group: Свой
  • Posts: 1 215
  • Joined: 23 февраля 05

Posted 08 августа 2018 - 09:28

Вставлю свои "пять копеек"
Я использую только два термина для класса:
функции-члены (любые) - "методы",
данные (тоже любые) - "поля": https://ru.wikipedia...%81%D1%81%D0%B0
Не помню, где это это вычитал, но зацепила простота и краткость этих двух слов. Привык sm.gif

Есть еще третий термин "свойство", но не использую его, поскольку, по-моему, оно это слишком уже не очевидное - где-то им называют поля класса, а где - сеттеры/геттеры. Можно запутаться.

Не вижу смысла в тексте указывать вид "метода" или "поля" - статические/нестатические/виртуальные/закрытые/защищенные ... - это, имхо, лишнее, и не имеет как такового смысла в рядовом общении.
Термин "функция" использую применительно только к си, равно как и "процедура" - к паскалю (дельфи).
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
0

#24 User is offline   dxp Icon

  • Adept
  • PipPipPipPipPipPip
  • Group: Свой
  • Posts: 3 469
  • Joined: 06 декабря 04

Posted 09 августа 2018 - 04:20

Ещё был случай в истории, когда в строевой подготовке использовали "термины": "сено" и "солома". Для простоты. Многим очень нравилась простота и краткость этих двух слов.
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
0

#25 User is offline   Forger Icon

  • Профессионал
  • PipPipPipPipPip
  • Group: Свой
  • Posts: 1 215
  • Joined: 23 февраля 05

Posted 09 августа 2018 - 08:07

Цитата(dxp @ Aug 9 2018, 04:20) <{POST_SNAPBACK}>
Ещё был случай в истории, когда в строевой подготовке использовали "термины": "сено" и "солома". Для простоты. Многим очень нравилась простота и краткость этих двух слов.

Ну и по "традиции жанра" наверняка нашелся тот, который был против этой "простоты". Разумеется, ему дали "три наряда вне очереди"? ... :D
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
0

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1
0