-
接口類:
僅含有純虛函數(shù)的類稱為接口類
(沒有數(shù)據(jù)成員,只有成員函數(shù),成員函數(shù)是純虛函數(shù))
查看全部 -
繼承自抽象類的純虛函數(shù),如果在子類中進(jìn)行實現(xiàn),那么子類就可以實例化
查看全部 -
含有純虛函數(shù)的類叫做抽象類
查看全部 -
之前的知識:
虛函數(shù)和虛函數(shù)表
學(xué)習(xí):
純虛函數(shù):定義方式
查看全部 -
析構(gòu)函數(shù)的執(zhí)行順序:
先執(zhí)行子類的的析構(gòu)函數(shù),繼而會執(zhí)行父類的析構(gòu)函數(shù)
查看全部 -
函數(shù)的覆蓋:
子類中定義了和父類同名的虛函數(shù),此時發(fā)生了覆蓋
查看全部 -
虛函數(shù)表:
實現(xiàn)是? 派生類中的虛函數(shù)覆蓋了基類中虛函數(shù)指向的虛函數(shù)表中虛函數(shù)指針的地址,重新指向派生類中的虛函數(shù),而非基類中的同名虛函數(shù)
查看全部 -
內(nèi)存泄漏:
在析構(gòu)函數(shù)中加入virtual關(guān)鍵字
virtual?關(guān)鍵字修飾函數(shù)的限制:
不能修飾普通函數(shù),其修飾的函數(shù)必須是某個類的成員函數(shù)
不能修飾靜態(tài)成員函數(shù)(靜態(tài)成員函數(shù)其實不屬于任何一個類)
不能修飾內(nèi)聯(lián)函數(shù)
不能修飾構(gòu)造函數(shù)
查看全部 -
謝謝你了:
在實例化對象時,如果是在棧中實例化,則在后面調(diào)用函數(shù)的時候使用取地址符號&;若是在堆中實例化,則后面調(diào)用函數(shù)的時候無需使用&,變量名本身已經(jīng)是一個地址。
CanShut *gun = new Gun();//堆中 ? ?//Gun gun;//棧中 ? ?// 調(diào)用含參函數(shù)hunting,將對象槍傳入函數(shù)中 ? ?hunting(gun);//堆中
查看全部 -
void flyMatch(Flyable *a,Flyable *b)//飛行比賽
//要求傳入一個會飛對象的指針,此時鳥類的對象指針可以傳入進(jìn)來
{
??? ....
??? a->takeoff();
??? b->takeoff();
??? a->land();
??? b->land();查看全部 -
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;/**
?*? 定義動物類:Animal
?*? 成員函數(shù):eat()、move()
?*/
class Animal
{
public:
??? // 構(gòu)造函數(shù)
??? Animal(){cout << "Animal" << endl;}
??? // 析構(gòu)函數(shù)
?virtual ~Animal(){cout << "~Animal" << endl;}
??? // 成員函數(shù)eat()
?virtual void eat(){cout << "Animal -- eat" << endl;}
??? // 成員函數(shù)move()
?virtual void move(){cout << "Animal -- move" << endl;}
};/**
?* 定義狗類:Dog
?* 此類公有繼承動物類
?* 成員函數(shù):父類中的成員函數(shù)
?*/
class Dog : public Animal
{
public:
??? // 構(gòu)造函數(shù)
?Dog(){cout << "Dog" << endl;}
??? // 析構(gòu)函數(shù)
?virtual ~Dog(){cout << "~Dog" << endl;}
??? // 成員函數(shù)eat()
?virtual void eat(){cout << "Dog -- eat" << endl;}
??? // 成員函數(shù)move()
?virtual void move(){cout << "Dog -- move" << endl;}
};int main(void)
{
??? // 通過父類對象實例化狗類
?Animal *p = new Dog();
??? // 調(diào)用成員函數(shù)
?p->eat();
??? p->move();
??? // 釋放內(nèi)存
??? delete p;
??? p = NULL;
???
?return 0;
}查看全部 -
函數(shù)的隱藏:子類中有與父類同名的函數(shù)
函數(shù)的覆蓋:子類中有與父類同名的虛函數(shù)
查看全部 -
靜態(tài)多態(tài):早綁定 --->函數(shù)重載? 在編譯時就已經(jīng)確定調(diào)用哪個函數(shù)
動態(tài)多態(tài):晚綁定 --->繼承類間的同名函數(shù)調(diào)用,當(dāng)父類指針指向子類對象時,在運行時才判定調(diào)用的是子類中的同名函數(shù),而非父類
查看全部 -
多態(tài)定義:
查看全部 -
普通虛函數(shù)
虛析構(gòu)函數(shù)
純虛函數(shù):抽象類和接口類
RTTi:運行時類型識別
異常處理
查看全部
舉報