程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++學習筆記25,永遠將析構函數聲明為virtual

C++學習筆記25,永遠將析構函數聲明為virtual

編輯:C++入門知識

要永遠記得將析構函數聲明為virtual----><>

或許你覺得這句話不一定對,但無需質疑的是這句話是很有用的.

查看下面的例子:

#include 
#include 
using namespace std;
class B{
public:
	~B(){
		cout<<"base is destroyed!"<
這個是一個很簡單的例子,輸出是肯定的.

\

但是,再看下面的測試!<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHByZSBjbGFzcz0="brush:java;">#include #include using namespace std; class B{ public: ~B(){ cout<<"base is destroyed!"<\

因此可以看到,當用一個基類的指針指向一個派生類的對象,直接刪除該指針時,析構函數調用鏈將會遭到破壞.

#include 
#include 
using namespace std;
class B{
public:
	virtual ~B(){
		cout<<"base is destroyed!"<

因此應該記得將析構函數聲明為virtual,這樣就永遠不用擔心析構函數調用鏈遭到破壞!


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved