將可能會被繼承的父類的析構函數設置爲虛函數,可以保證當我們new一個子類,然後使用基類指針指向該子類對象,釋放基類指針時可以釋放掉子類的空間,防止內存泄漏。
C++默認的析構函數不是虛函數是因爲虛函數需要額外的虛函數表和虛表指針,佔用額外的內存。而對於不會被繼承的類來說,其析構函數如果是虛函數,就會浪費內存。因此C++默認的析構函數不是虛函數,而是隻有當需要當作父類時,設置爲虛函數。
將可能會被繼承的父類的析構函數設置爲虛函數,可以保證當我們new一個子類,然後使用基類指針指向該子類對象,釋放基類指針時可以釋放掉子類的空間,防止內存泄漏。
C++默認的析構函數不是虛函數是因爲虛函數需要額外的虛函數表和虛表指針,佔用額外的內存。而對於不會被繼承的類來說,其析構函數如果是虛函數,就會浪費內存。因此C++默認的析構函數不是虛函數,而是隻有當需要當作父類時,設置爲虛函數。
#include<iostream>using namespace std;/*memcpy函數用於資源內存(src指向的內存)拷貝到目標內存(des
1. 面向對象的程序設計思想是什麼? 答:把數據結構和對數據結構進行操作的方法封裝形成一個個的對象。 2. 什麼是類? 答:把一些具有共性的對象歸類後形成一個集合,也就是所謂的類。 3.