推 godfat:這是靜態多形,一般指多形是指 OO 中的 dynamic binding 02/13 16:21
※ 引述《xfuns (我一定要考上!!!!)》之銘言:
: 在書上看到動態配置中有一段不太明白
: "動態配置是以動態的方法來決定程序呼叫與程序定義之繫結,此種功能亦稱
: 為多模(polymorphism)"
: 我想知道它所說的"動態的方法"是指什麼?
: 而多模,我印象中定義是說
: "一個變數可以以多種不同型態宣告在物件裡" (這定義可能不太正確,有錯請指正!!)
: 這樣的話 請問動態配置和多模怎麼會扯上關係呢?
: 多模的變數宣告亦是用動態的方法嗎?
: 麻煩大家了
: 謝謝!!
我一開始也以為我看錯了@@
(polymorphism會和動態配置扯上關係?)
不過我仔細想了想 發現它所講的「動態配置」指的應該是「動態鏈結」
就像這樣:(C++)
int foo(int a)
{
return a*2;
}
int foo(int a, int b)
{
return a*b;
}
int foo(char a)
{
return ((int)a)*3;
}
int main(void)
{
int a,b,c;
char d;
a=5;
b=7;
d=' ';
c=foo(a); //這個會link到foo(int) 所以執行後c=10 (5*2)
c=foo(a,b); //這個會link到foo(int,int) 所以執行後c=35 (5*7)
c=foo(d); //這個會link到foo(char) 所以執行後c=96 (32*3)
return 0;
}
它指的就是這種根據參數型態及個數來決定要link到哪一個foo的機制
同樣的在物件的method中 也可以藉由參數個數不同而達成link到不同的同名函式
我個人認知的polymorphism就是以上這些機制(或曰特性?)的總稱
有錯還請指正m(_ _)m
--
**** 說:
不要期望一個精神力差不多已經見底的人阿Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.44.21