不要對陣列和指標運算使用多型

2021-07-09 14:48:19 字數 414 閱讀 5299

先看下面的程式:

#includeusing namespace std;

class animal

animal(char* tmp)

virtual ~animal(){}

friend ostream& operator<

display(wtarray,3);

將派生類陣列傳遞給display函式,陣列名退化為指標,即將派生類指標賦給基類指標。display函式中呼叫operator<

所以,多型和指標運算不能混合在一起用,也就意味著多型和陣列也不能混合一起用!

不要對陣列使用多型

不要對陣列使用多型 類繼承的最重要的特性是你可以通過基類指標或引用來操作派生類。這樣的指標或引用具有行為的多型性,就好像它們同時具有多種形態。c 允許你通過基類指標和引用來操作派生類陣列。不過這根本就不是乙個特性,因為這樣的 幾乎從不如你所願地那樣執行。假設你有乙個類bst 比如是搜尋樹物件 和繼承...

Item M3 不要對陣列使用多型 無責任書評

其實是 more effective c 書上的,並非原文照搬,而是刪減無關的內容,補充了一些事實和看法。類繼承的最重要的特性是你可以通過基類指標或引用來操作派生類。這樣的指標或引用具有行為的多型性,就好像它們同時具有多種形態。c 允許你通過基類指標和引用來操作派生類陣列。不過這根本就不是乙個特性,...

不要使用多型性陣列

類繼承的最重要的特性是你可以通過基類指標或引用來操作派生類。這樣的指標或引用具有行為的多型性,就好像它們同時具有多種形態。c 允許你通過基類指標和引用來操作派生類陣列。不過這根本就不是乙個特性,因為這樣的 根本無法如你所願地那樣執行。假設你有乙個類bst 比如是搜尋樹物件 和繼承自bst類的派生類b...