dxp 58 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба Да кмк здесь слово метод более употребительно чем там, но и там оно тоже используется. Я вижу, вам тоже оно нравится (более коротко и/или привыкли). Из-за чего так? Кмк потому что методы вошли в общепринятую терминологию позже плюсов. "Метод" (как и ООП) появился куда раньше плюсов. Обратите внимание, он говорит про Java и взял в кавычки, подчёркивая, что в плюсах далеко не все функции-члены являются методами. К тому же вошли в двух разных школах. В ораклово-явовской метод=вирутальная функция член, в майкрософто-решеточной (и дельфевской из которой решетка переняла многое) метод просто функция в классе. Поэтому прошу не утверждать что есть единая верная интерпретация. Я ничего не утверждаю. Ну, разве что то, что термина "метод" в С++ нет вообще. Есть функция, функция-член, статическая функция-член, виртуальная функция-член. На последнюю можно отмапить термин "метод", переходя на ОО терминологию. Но тащить её дальше и обобщать - это как-то слишком. Вообще в оригинале абстрактного ОО (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). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kabdim 0 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба "Метод" (как и ООП) появился куда раньше плюсов. Обратите внимание, он говорит про Java и взял в кавычки, подчёркивая, что в плюсах далеко не все функции-члены являются методами. "Метод" как способ диспатча по строке с именем - да, но не то что вы сейчас называете методом. Почему вы из кавычек умудрились вытянуть этот скрытый смысл? Для меня кавычки это цитата, не более того. Которые в данном месте применили что бы подчеркнуть что это не официальный термин плюсов, а джавовский. На последнюю можно отмапить термин "метод", переходя на ОО терминологию. Ну раз её можно "мапить", то почему бы не отмапить в шарпнутую плоскость? Вот если вы пройдёте по вхождениям словам "method", то убедитесь, что Страуструп очень аккуратно использует терминологию, употребляя этот термин именно как синоним виртуальной функции-члена, например (стр. 20): Собственно я и не спорил что Страуструп использует слово метод и в том и в другом смысле. Но из пропузалов в стандарт слово метод вымарывается нещадно и в значении витруальной функции члена тоже. Последнее несложно увидеть в репозиториях пропоузалов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
halfdoom 0 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба Видимо не стоит буквально переводить "method" как "метод". В русском языке слово "метод" в контексте класса/объекта устаканилось для обозначения статической/виртуальной/обычной функции или процедуры, вложенной в контекст класса. В англоязычных источниках, используется member function, который, как уже заметили, несколько не благозвучен в буквальном переводе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба Видимо не стоит буквально переводить "method" как "метод". В русском языке слово "метод" в контексте класса/объекта устаканилось для обозначения статической/виртуальной/обычной функции или процедуры, вложенной в контекст класса. Да, именно в русскоязычном сегменте. И если даже, как вы говорите, обычные функции уже называют методами, то мне тогда совсем не понятно, почему именно методами, а не, скажем, слонами - по близости смысла (а точнее, дальности) они где-то рядом. :biggrin: В англоязычных источниках, используется member function Полагаю, это потому, что они построже обращаются с терминологией. который, как уже заметили, несколько не благозвучен в буквальном переводе. Хе. Ну, тогда и для членов-данных нужно тем более придумать левый синоним - ведь с данными-то всё ещё хуже (если там хоть функция-ч..., то данные чаще всего называют просто ч...). :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
halfdoom 0 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба обычные функции уже называют методами, то мне тогда совсем не понятно, почему именно методами Имееются в виду не статические или виртуальные: class A { void plain_method(); }; Ну, тогда и для членов-данных нужно тем более придумать левый синоним - ведь с данными-то всё ещё хуже Так их вроде так и называют — "(статические) данные класса". Вот со свойствами из ОО-Паскаля или С-шарпа вышла накладка, т.к. понятие "свойства класса" выходит за рамки внутриклассовых синтаксических конструкций. В начале 90-х, некоторые придерживались кальки с английского "проперти", что в беглой речи тоже превращало property editor в не очень благозвучное слово. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба Так их вроде так и называют — "(статические) данные класса". Что-то вы совсем не о том. Члены-данные класса (class data member) и статические члены-данные класса - это две ба-альшие разницы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
halfdoom 0 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба Что-то вы совсем не о том. Члены-данные класса (class data member) и статические члены-данные класса - это две ба-альшие разницы. Просто сокращенно написал, понятно, что два разных вида: - данные класса; - статические данные класса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 24 8 августа, 2018 Опубликовано 8 августа, 2018 · Жалоба Вставлю свои "пять копеек" Я использую только два термина для класса: функции-члены (любые) - "методы", данные (тоже любые) - "поля": https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%...%81%D1%81%D0%B0 Не помню, где это это вычитал, но зацепила простота и краткость этих двух слов. Привык :) Есть еще третий термин "свойство", но не использую его, поскольку, по-моему, оно это слишком уже не очевидное - где-то им называют поля класса, а где - сеттеры/геттеры. Можно запутаться. Не вижу смысла в тексте указывать вид "метода" или "поля" - статические/нестатические/виртуальные/закрытые/защищенные ... - это, имхо, лишнее, и не имеет как такового смысла в рядовом общении. Термин "функция" использую применительно только к си, равно как и "процедура" - к паскалю (дельфи). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 9 августа, 2018 Опубликовано 9 августа, 2018 · Жалоба Ещё был случай в истории, когда в строевой подготовке использовали "термины": "сено" и "солома". Для простоты. Многим очень нравилась простота и краткость этих двух слов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 24 9 августа, 2018 Опубликовано 9 августа, 2018 · Жалоба Ещё был случай в истории, когда в строевой подготовке использовали "термины": "сено" и "солома". Для простоты. Многим очень нравилась простота и краткость этих двух слов. Ну и по "традиции жанра" наверняка нашелся тот, который был против этой "простоты". Разумеется, ему дали "три наряда вне очереди"? ... :D Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться