Динамическая типизация && полиформизм
От: DemAS http://demas.me
Дата: 04.10.09 11:01
Оценка:
"Динами́ческая типиза́ция — приём, широко используемый в языках
программирования и языках спецификации, при котором переменная связывается
с типом в момент присваивания значения, а не в момент объявления
переменной. Таким образом, в различных участках программы одна и та же
переменная может принимать значения разных типов."

http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F

Но ведь при полиформизме тип переменной тоже может определиться только на
этапе исполнения кода:


class Base
   static Base construct(enum param) {
      switch(param)
      {
        case ...:
          return new A();
        case ...:
          retrun new B();
      }
   }

class A extends Base
      doSomething();

class B extends Base
      doSomething();

main {
  Base v = Base::construct(userInput()); 
  v.doSomething();
}


Здесь тип переменной v (A или B) определится только на этапе исполнения
кода. Но ведь C++ не является динамически типизированным языком.

Где противоречие?
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.