Object seilcing 物件切割測試

2021-08-20 23:53:14 字數 1122 閱讀 5050

閱讀侯傑的《深入淺出mfc》裡面提到的虛函式的一章,提到了物件切割:

即將乙個子類強制轉換成父類時,它會把該物件的子類部分切割掉

比如,考慮這樣一條強制轉換語句:

(cfahter) cchldobject.memberfunc();

會將子類物件強制轉換成父類物件——它會產生乙個臨時物件,呼叫了拷貝建構函式

考慮到我寫的如下測試**:

標頭檔案myobject.h如下:

//這份標頭檔案定義了父類和子類,父類有乙個成員函式func1,去呼叫虛函式vfunc

#pragma once

#include

using

namespace

std;

class cfather

//copy constructor

cfather(cfather& x)

void func()

virtual

void vfunc1()

};class cchild : public cfather

virtual

void vfunc1()

};

main函式如下:

#include "myobject.h"

using

namespace

std;

int main()

執行結果如下:

cfather constuctor!

010ff998

cchild constuctor!

cfahter copy

constructor!

010ff8cc

cfater

func

begin!

cfather

come!

由this指標不同,以及呼叫了拷貝建構函式,可以看出,確實產生出了乙個臨時變數。

再次溫習一下《深入淺出mfc》所說的物件切割,會把子類的成員部分切割掉,因此,vptr中並沒有子類的虛函式vfunc

對建立游標對理解

步驟 1 首先經過底層的 編寫已經建立起了了python和資料庫之間的溝通橋梁並封裝成了模組,通過pymysql下的conntent 方法與之建立起了連線,例項物件。pymysql.connect 方法返回的是connections模組下的connection 例項,connect 方法傳參就是在給...

對勾函式 對勾函式

對勾函式是一種類似於反比例函式的一般函式。所謂的對勾函式,是形如 f x ax b x 的函式,是 一種教材上沒有但考試老喜歡考的函式,所以更加要注意和學習。一般的函式影象形似兩個中心對稱的 對勾,故名。當x 0 時,f x ax b x 有最小值 這裡為了研究方便,規定a 0 b 0 也就是當 x...

一對多 多對一

pip install djangorestframework 3.9.2 pip install markdown 3.0.1 markdown support for the browsable api.pip install django filter 2.1.0 filtering supp...