![]() | |
| |||||||
| Home | Register | Blogs | FAQ | Members List | Calendar | Downloads | Arcade | Mark Forums Read |
| Languages, Compilers and Interpreters C,C++,C#,.NET,Java,PHP,Perl,SQL and more |
![]() |
| | LinkBack | Thread Tools | Display Modes |
| | #1 |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | static virtual function интересно, почему в c++ нет статические функции невозможно сделать виртуальными? не думаю, что с реализацией возникли бы какие-то технические трудности - все реализуется так же, как с обычными функциями, только this не предается. зато можно было бы по динамическому указателю вызывать и статические функции класса... в комитете посчитали этот случай слишком редким и ненужным?
__________________ Сайт армянских маньяков |
| | |
| | #2 |
| Administrator | то, что ты предлагаешь (предполагаешь), звучит так /если я правильно сформулировал для себя/: разрешите статические виртуальные ф-ции, но так, чтоб они принимали как минимум 1 параметр - указатель на динамические объекты. /потому что в ином случае статический виртуальный мембер становится out-of-use/ ![]() принуждать программеров нехорошо, не так ли ?
__________________ И повешенные могут качаться в неположенную сторону. /С.Е.Лец/ |
| | |
| | #3 | |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | Quote:
__________________ Сайт армянских маньяков | |
| | |
| | #4 |
| Administrator | а динамически - это как? положим, ты - компилятор. как ты будешь различать, кто этот метод вызвал ?
__________________ И повешенные могут качаться в неположенную сторону. /С.Е.Лец/ |
| | |
| | #5 |
| Грустно... | В новом стандарте С++ собираются ввести мультиметоды, сейчас есть реализации в некоторых библиотеках. А статическая функция по определению не может быть виртуальной. Тебе скорее всего нужна callcback или потоковая функция... так для этого есть методы.
__________________ http://аvitya.livejournal.com Хотели, как лучше, а получилось даже хуже... Лозунг шахматиста: На каждый шах - ответим матом! |
| | |
| | #6 | |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | Quote:
__________________ Сайт армянских маньяков | |
| | |
| | #7 |
| Грустно... | Понимаешь как, виртуальная функция - требует наличия объекта - статическая не требует. Ты ее можешь вывать, как CMyMother****ingClass::MyMother****ingStaticFuncti on(); - a если нет объекта - тогда нет виртуальной таблицы.
__________________ http://аvitya.livejournal.com Хотели, как лучше, а получилось даже хуже... Лозунг шахматиста: На каждый шах - ответим матом! |
| | |
| | #8 | |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | Quote:
__________________ Сайт армянских маньяков | |
| | |
| | #9 |
| Грустно... | то есть получается компилятор должен решать это просто статическая, а это виртуальная статическая? Фигня выходит. Сделай сам, как грицца: PHP Code: ![]()
__________________ http://аvitya.livejournal.com Хотели, как лучше, а получилось даже хуже... Лозунг шахматиста: На каждый шах - ответим матом! |
| | |
| | #10 |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | это конечно решение, но не такое красивое, как виртуальная статическая функция. а если красота - субъективный аргумент, то вот и объективный: написание дополнительной функции и передача параметра в статическую функцию
__________________ Сайт армянских маньяков |
| | |
| | #11 |
| Грустно... | могу красивее: прицепи к проекту boost.lambda там есть функтор bind, который просто будет вызывать эту фунцкию и код будет таким PHP Code:
__________________ http://аvitya.livejournal.com Хотели, как лучше, а получилось даже хуже... Лозунг шахматиста: На каждый шах - ответим матом! |
| | |
| | #12 |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | мой вопрос носит исключительно теоретический характер, и я хочу только знать, почему эту возможность не реализовали, а не альтернативные пути реализации
__________________ Сайт армянских маньяков Last edited by Aram Hambardzumyan : Mar 13, 2004 at 07:11. |
| | |
| | #13 |
| Грустно... | Я сказал выше, что это неправильно. Статическая функция на то и статическая, чтобы не быть виртуальной. ![]()
__________________ http://аvitya.livejournal.com Хотели, как лучше, а получилось даже хуже... Лозунг шахматиста: На каждый шах - ответим матом! |
| | |
| | #14 | |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | Quote:
__________________ Сайт армянских маньяков | |
| | |
| | #15 |
| Грустно... | чтобы была виртуальной требуется this. если же она статическая - то получается разное поведение когда она вызывается, как CMyClass::Func() и CBase->Func()
__________________ http://аvitya.livejournal.com Хотели, как лучше, а получилось даже хуже... Лозунг шахматиста: На каждый шах - ответим матом! |
| | |
![]() |
| Thread Tools | |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| static variables in class member functions | hov | Languages, Compilers and Interpreters | 6 | Sep 23, 2002 19:18 |
| static variables in class member functions | hov | Languages, Compilers and Interpreters | 0 | Sep 21, 2002 09:33 |
| Armenian Unicode - Java Unicode Virtual Keyboard. | Eddi | Web sites | 0 | Jul 10, 2002 07:54 |
| virtual keyboard | PsilocybeLarvae | General | 2 | Mar 25, 2002 15:30 |
| Virtual inheritance ?? | Taurus | Languages, Compilers and Interpreters | 3 | Mar 6, 2002 13:34 |