mooc程式設計與演算法(三)第六周 多型

2021-08-19 19:47:58 字數 2593 閱讀 7761

派生類的指標可以賦值給基類指標

通過基類指標用基類和派生類中的同名虛函式時:

若該指標指向乙個基類的物件,那麼被呼叫是基類的虛函式

若該指標指向乙個派生類的物件,那麼被呼叫的是派生類的虛函式。

派生類的物件可以賦值給基類的引用

通過基類引用呼叫基類和派生類中的同名虛函式時:

若該引用引用的是乙個基類的物件,那麼被呼叫的是基類的虛函式

若該引用引用的是乙個派生類的物件,那麼被呼叫的是派生類的虛函式

例子。。。。

#include 

using namespace std;

class a

a

::print

b::print

d::print

e::print

#include 

#include

#include

using

namespace

std;

class cshape;

class crectangle:public cshape;

class ccircle:public cshape;

class ctrinale:public cshape;

double crectangle::area()

void crectangle::printinfo()

void ccircle::printinfo()

void ctrinale::printinfo()

int main()

}qsort(pshape, n, sizeof(cshape*), mycompare);

for (int i = 0; i < n; ++i) }/*

3t 3 4 5

r 1 2

c 1 */

下面用sort在補充一次。。。。在此感謝實驗室的同門小妹妹,qsort中傳入的是乙個const void *型別,而sort傳入的直接是乙個對應的型別
#include 

#include

#include

#include

using

namespace

std;

class cshape;

class crectangle:public cshape;

class ccircle:public cshape;

class ctrinale:public cshape;

double crectangle::area()

void crectangle::printinfo()

void ccircle::printinfo()

void ctrinale::printinfo()

int main()

}// qsort(pshape, n, sizeof(cshape*), mycompare);

sort(pshape, pshape+n, mycompare);

for (int i = 0; i < n; ++i)

}

#include 

using

namespace

std;

class myclass

// 派生類和基類中虛函式同名同參數列的函式,不加virtual也自動成為虛函式

};class grandson:public son

hello form son

constructing grandson

hello from grandson

destructing grandson

bye from

myclass

每乙個有虛函式的類(或虛函式的類的派生類)都有個虛函式表,該類的任何物件中都存放著虛函式表的指標。虛函式表中列出了該類的虛函式位址。多出來的4個位元組是用來存放虛函式表的位址的。
#include 

using

namespace

std;

class a

#include 

using

namespace

std;

class son

bye from grandson

bye from son

抽象類只能作為基類來派生新類使用,不能建立抽象類的物件

抽象類的指標和引用可以指向由抽象類派生出來的類的物件

在抽象類的成員函式可以呼叫純虛函式,但是在建構函式或析夠函式內部不能呼叫純虛函式

如果乙個類從抽象類派生而來,當且僅當它實現了基類中的所有純虛函式,它才能夠成為非抽象類

#include 

using

namespace

std;

class a

};class b:public a

b

:f()

第六周程式設計總結

includeint main 第一步 定義變數 第二步 輸入變數 第三步 呼叫for語句 第四步 累加求和 第五步 輸出答案 問題 計算的答案錯誤 解決方法 累加求和時將1更改為1.0 第一步 定義變數 第二步 輸入實數 第三步 呼叫for語句 第四步 累加求和 第五步 輸出答案 問題 分式的分母...

第六周程式設計總結

這個作業屬於哪個課程 c語言程式設計ll 這個作業要求在 我在這個課程的目標是 理解變數 記憶體單元和位址之間的關係,掌握指標變數的基本運算 這個作業在哪個具體方面幫助我實現目標 讓我大概了解了指標的定義及用法 參考文獻 函式fun的功能是 求兩數平方根之和,作為函式值返回。例如 輸入12和20,輸...

第六周程式設計總結

這個作業屬於哪個課程 c語言程式設計 這個作業要求在 我在這個課程的目標是 學習更多知識 這個作業在哪個具體方面幫助我實現目標 了解指標的用法 參考文獻 c語言程式設計書 6 1 求兩數平方根之和 10 分 函式fun的功能是 求兩數平方根之和,作為函式值返回。例如 輸入12和20,輸出結果是 y ...