溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

多態(tài)性與虛函數(shù)

發(fā)布時(shí)間:2020-06-28 05:23:35 來源:網(wǎng)絡(luò) 閱讀:293 作者:悟天克斯66 欄目:編程語言
多態(tài)性:向不同的對象發(fā)送同一個(gè)消息,不同的對象在接受時(shí)會產(chǎn)生不同的行為(即方法)

#include <iostream>
using namespace std;
class B
{
public:
 void print()
{
cout << "B::print()" << endl;
}
 virtual void show();
};
void B::show()
{
cout << "B::show()" << endl;
}
class D :public B
{
public:
void print()
{
cout << "B::print()" << endl;
}
 void show()
{
cout << "D::show()" << endl;
}
};
class E :public D
{
public:
void show()
{
cout << "E::show()" << endl;
}
};
void fun(B *pb)
{
pb->show();
}
int main()
{
D d;
B b;
E e;
fun(&d);
fun(&b);
fun(&e);
getchar();
return 0;
}
最好把基類的析構(gòu)函數(shù)聲明為虛函數(shù)
#include <iostream>
using namespace std;
class B
{
public:
 B()
{
cout << "B()" << endl;
}
virtual ~B()
{
cout << "~B()" << endl;
}
};
class D :public B
{
public:
D()
{
cout << "D()" << endl;
}
~D()
{
cout << "~D()" << endl;
}
};
int main()
{
//D d;
B *pb = new D;
delete pb;
getchar();
return 0;
}


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI