реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Растолкуйте по шаблону С++
dxp
сообщение Jul 27 2018, 10:05
Сообщение #16


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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

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

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

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

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

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

Цитата(Kabdim @ Jul 27 2018, 16:15) *
Вообще в оригинале абстрактного ОО (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)
.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Jul 27 2018, 10:14
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



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

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

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

Собственно я и не спорил что Страуструп использует слово метод и в том и в другом смысле. Но из пропузалов в стандарт слово метод вымарывается нещадно и в значении витруальной функции члена тоже. Последнее несложно увидеть в репозиториях пропоузалов.
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Jul 27 2018, 10:59
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Видимо не стоит буквально переводить "method" как "метод". В русском языке слово "метод" в контексте класса/объекта устаканилось для обозначения статической/виртуальной/обычной функции или процедуры, вложенной в контекст класса. В англоязычных источниках, используется member function, который, как уже заметили, несколько не благозвучен в буквальном переводе.
Go to the top of the page
 
+Quote Post
dxp
сообщение Jul 27 2018, 11:19
Сообщение #19


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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

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

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

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

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

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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Jul 27 2018, 12:00
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



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


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

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


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


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

Вот со свойствами из ОО-Паскаля или С-шарпа вышла накладка, т.к. понятие "свойства класса" выходит за рамки внутриклассовых синтаксических конструкций. В начале 90-х, некоторые придерживались кальки с английского "проперти", что в беглой речи тоже превращало property editor в не очень благозвучное слово.
Go to the top of the page
 
+Quote Post
dxp
сообщение Jul 27 2018, 13:02
Сообщение #21


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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

Что-то вы совсем не о том. Члены-данные класса (class data member) и статические члены-данные класса - это две ба-альшие разницы.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Jul 27 2018, 14:01
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



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


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

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

Go to the top of the page
 
+Quote Post
Forger
сообщение Aug 8 2018, 06:28
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



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

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

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 9 2018, 01:20
Сообщение #24


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Forger
сообщение Aug 9 2018, 05:07
Сообщение #25


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



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

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th April 2024 - 04:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01453 секунд с 7
ELECTRONIX ©2004-2016