c中的多型問題,書上是這麼寫的,怎麼解釋呢

2022-12-02 07:35:16 字數 731 閱讀 4950

1樓:_神__仙

animal myanimal=mycow;

子類物件賦給父類引用

為什麼不用new?

string a= "123";也沒有new,string是個類呀,為什麼沒new呢?

是因為"123"是string型別的物件,所以string a = 「123"不需要new

同理,animal myanimal = mycow也不需要new,new後面跟的是該類的共有構造方法,可以帶形參,也可以無引數,這裡要問了,為什麼沒寫建構函式卻能new物件呢?因為如果沒有自定義無參構造的情況下,系統會預設每個類都有一個無參的共有構造,如果自定義一個私有的無參構造,那麼就無法通過這個私有構造去new物件了。

派生類的定義是基於基類的,可以理解為派生類是基類的兒子,而基類就是父親,兒子理所當然會繼承父親的非私有的屬性和方法,所以繼承自動物類的牛和雞就都有了eatfood的方法

2樓:匿名使用者

animal myanimal=mycow;// 這行是什麼意思?

將子類的物件賦給基類,也就是父類,這樣當子類實現的父類的eatfood()

後,根據多型的表現基類會呼叫子類的eatfood()也可以理解為動態繫結

3樓:孤潤柔

public static void eatdongwu()class she : dongwu

class daozi:dongwu}

c中的問題

1 a new a 不一定是例項化。也可能是負值。比如obj a new a 其實大里是三步。obj a new a a new a 我這麼認為。我也沒看資料。2 要看這個class c 是不是最外一級。在外接class前面加private,protected根本不會通過編譯。預設是internal...

c 中的小問題,c 中的一個小問題

除法是基本運算,規則如下,如果兩個運算元中有一個為浮點型,則結果為浮點,如果兩個均為整型,則為整除。當整型取浮點時就要強制轉換 float 或者 double 例如 int a 5 int b 2 則a b的值為2 整除 而用 double a b的值則為2.5,用個強制型別轉換 double 就行...

自考C 中的問題

41 define pi 3.14 預定義不能有分號44 void main 上面括號裡的單引號應改為雙引號,因為print函式的形參是用來接收字串的 45 class cls z指標沒有分配空間,在這一行下面加一句 cls class malloc sizeof class 46 下面是完整的程式...