Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: 'Чистая виртуальная' или 'чисто виртуальная' функция?  (Прочитано 17526 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 03-02-2010 12:02 » 

Setuper, не "чисто виртуальный метод " , а "чистый виртуальный"  Улыбаюсь
« Последнее редактирование: 04-02-2010 18:46 от Вад » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 04-02-2010 15:50 » 

Setuper, не "чисто виртуальный метод " , а "чистый виртуальный"  Улыбаюсь
Почитайте Страуструпа. У него чёрным по белому написано: "чисто виртуальная функция" (изд.3, 2007г., стр361).  Улыбаюсь
Setuper, Страуструп - француз Улыбаюсь

Но ты даже сам по смыслу посмотри:

1) чистО виртуальная  - виртуальная такая, совсем-совсем виртуальная виртуальная функция Улыбаюсь Сметана сметанная.
2) чистАЯ виртуальная - она виртуальная и при этом без тела
« Последнее редактирование: 04-02-2010 18:45 от Вад » Записан

Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 04-02-2010 15:58 » 

Алексей1153++, если уж привязываться к терминологии, то чистой называется функция без побочных эффектов. А потому, не каждая чисто виртуальная функция может быть названа "чистой".
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 04-02-2010 16:02 » 

Вад, вот такого не слышал Улыбаюсь 
Записан

lapulya
Молодой специалист

ru
Offline Offline

« Ответ #4 : 04-02-2010 16:16 » 

Вад, эээ не понял... функция (член класса) вида
type f(type) = 0;
называется pure virtual function (кстати это мы видим при возникновении ошибки, когда идет вызов такой функции, не переопределенной в наследниках), поэтому строго говоря это именно чистаЯ виртуальнаЯ функция, но я сам говорю чистО виртуальнаЯ функция. Страуструп сделал свое грязное дело.
« Последнее редактирование: 04-02-2010 16:27 от lapulya » Записан

С уважением Lapulya
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 04-02-2010 16:54 » 

Да дядя Страуструп по-русски вообще не говорит, опомнитесь Улыбаюсь Или говорит ?
Записан

Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 04-02-2010 18:37 » 

lapulya, ну, положим, не Страуструп, а переводчики. Поправьте, если ошибаюсь, но pure в данном контексте относится к virtual, а не к function. И совершенно правильно переводится на русский наречием: описывается "чистота виртуальности", а не "чистота функции". Прилагательное же относится к "функции", а "чистая функция", как я уже сказал, это не то.
Записан
jur
Помогающий

lt
Offline Offline

« Ответ #7 : 04-02-2010 19:25 » 

Как мне, иноверцу, - "чисто виртуальная функция" звучит законченнее (бдагозвучнее, понятнее). Но это, конечно, сугубое IMHO.

Кстати, объясните, пожалуйста, на пальцах, зачем нужны эти виртуальные функции?...

Я столкнулся с их необходимостью когда предоставил доступ к классам основной программы всяческим DLL-кам. Пока не написал перед каждым методом класса virtual программа не компилировалась (или DLL-ки не компилировались - уже запамятовал... Вроде DLL-ки)... А нафига этот virtual я так и не понял... Не иначе, как для того, чтобы создалась таблица адресов методов...
Записан

MPEG-4 - в массы!
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 04-02-2010 19:31 » 

а мне благозвучнее "чистая" ))

Нужны виртуальный функции для возможности вызова методов потомков , которые производны от родительского класса. Причём вызов можно делать через указатель, имеющий тип родительского класса
Записан

jur
Помогающий

lt
Offline Offline

« Ответ #9 : 04-02-2010 19:57 » 

У меня там потомков нема... Просто один-оденешенек класс. Его адрес передается DLL-кам (типа при вызове точки входа DLL-ки Init). Я из DLL-ки пытаюсь вызвать методы класса - фиг... Пока не дописал к ним virtual...
Записан

MPEG-4 - в массы!
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #10 : 04-02-2010 23:50 » 

pure

   1. чистый
   2. беспримесный
   3. чистокровный
   4. ясный
   5. отчетливый
   6. простой
   7. безупречный
   8. непорочный
   9. целомудренный
  10. чистейший
  11. полнейший

Выбирай на вкус. Поэтому мне больше нравится определение "абстрактный метод" Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #11 : 05-02-2010 05:59 » 

Вад, да, это переводчики)))

теперь об английском))) если 2 прилагательных идут перед существительным, то оба они конечно относятся к существительному, т.е. pure virtual function это, как я и сказал выше, чистаЯ виртуальнаЯ функция, если надо сказать чистО виртуальная, то это будет pureLY virtual function.

Обсуждение того, зачем нужна виртуальная (тем более чисто Улыбаюсь виртуальная) функция  предлагаю вынести из этой ветки... это ИМХО
Записан

С уважением Lapulya
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 05-02-2010 06:55 » 

Конечно, они оба относятся к существительному. К чему же им относиться? Но pure относится не просто к function (если бы это было так, смысл был бы совсем иной), а служит дополнительной характеристикой к virtual (или, даже, дополнением к словосочетанию "virtual function"). То, что английское наречие здесь неуместно, я интуитивно чувствую, но объяснить не могу. Но куда более уверен, что во избежании двусмысленности на русском должно быть наречие Улыбаюсь

А если точнее, то в русском это должно переродиться в чисто-виртуальную функцию, а в английском - в pure-virtual function Улыбаюсь Просто для большей ясности, что к чему относится. Тогда в обоих случая будет совершенно ясно, к чему и зачем прилагательные.
« Последнее редактирование: 05-02-2010 06:56 от Вад » Записан
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #13 : 05-02-2010 13:13 » 

если pure-virtual одно слово, то это действительно чисто виртуальная, если два слова (а именно так и написано у Страуструпа и именно так ругается компилятор), то это именно чистаЯ виртуальная...
Записан

С уважением Lapulya
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 05-02-2010 14:19 » 

Не люблю C++ специфику Улыбаюсь. Эта штука - чистА "абстрактный метод", без Б Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #15 : 06-02-2010 04:20 » 

чисто конкретно виртуальная ))
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #16 : 07-02-2010 21:40 » 

"чистА-кАнкретнА виртуальная"
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines