在 C++ 中,復數類(complex number class)通常是一個模板類,用于表示和操作復數。復數類中的虛函數(virtual function)主要用于實現多態性,即允許基類指針或引用調用派生類的成員函數。
虛函數的主要作用有以下幾點:
動態綁定:當使用基類指針或引用調用虛函數時,程序會根據實際對象的類型來確定調用哪個版本的函數。這種行為稱為動態綁定或運行時多態。
提供接口:虛函數可以作為基類的接口,派生類可以根據需要重寫(override)這些函數,從而實現不同的功能。
析構函數應該是虛函數:當使用基類指針刪除派生類對象時,如果基類的析構函數不是虛函數,可能會導致派生類的析構函數未被調用,從而導致資源泄漏。將基類的析構函數聲明為虛函數可以確保正確地調用派生類的析構函數。
需要注意的是,并非所有情況下都需要將函數聲明為虛函數。只有當你希望通過基類指針或引用調用派生類的成員函數時,才需要將函數聲明為虛函數。在復數類中,如果你希望允許派生類重寫某些函數以實現不同的功能,那么這些函數應該被聲明為虛函數。