![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 15.10.2010
Сообщений: 65
|
![]()
Проходил собеседования. Поставили такую задачку:
PHP код:
Какие у кого варианты? (аргументируйте, пожалуйста, почему) |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]()
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 15.11.2008
Сообщений: 577
|
![]()
ето си шарп наверное
Цитата:
Последний раз редактировалось Stilet; 26.07.2012 в 21:10. |
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,371
|
![]()
В принципе, существуют методы раннего и позднего связывания.
Для метода класса, в котором метод описан как virtual, формируется таблица виртуальных методов. В этом случае, при вызове из потомка метода с таким-же именем как и у родителя, будет вызван метод потомка. Если метод не описан как виртуальный, то будет вызываться метод предка. Т.е. в данном случае: a.M1(); - метод класса A a.M2(); - метод класса A b.M1(); - метод класса B. В - потомок класса A, метод описан как virtual и переопределен в классе B. b.M2(); - метод класса A Цитата:
Как-то так, ...
|
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
а у нас обьект класса B. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 15.10.2010
Сообщений: 65
|
![]()
Компилятор показал ответ:
В А В В |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
как и ожидалось, правда я пропустил четвертый вызов чего-то.
четвертый метод был перекрыт(не переопределен), и у нас используется через ссылку на B, потому и вызывается метод от B. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ассемблер, какой из вариантов будет правильный | Ashley12 | Помощь студентам | 1 | 14.01.2012 01:08 |
Какой будет алгоритм=) | specnazkin | Помощь студентам | 2 | 27.11.2010 20:37 |
C# готовая задача, какой будет конечный результат? | dr.Chas | Помощь студентам | 2 | 26.11.2010 08:58 |
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? | TwiX | Общие вопросы Delphi | 3 | 15.11.2009 00:54 |
Метод для класса который будет работать с будующим экземпляром | SunKnight | Общие вопросы .NET | 7 | 12.05.2009 20:25 |