c++面向對象高級編程 學習六 虛函數

虛函數:在成員函數前面加上virtual,函數就變成了虛函數

繼承函數:子類可以調用父類的函數,叫做繼承了函數,即函數的調用權

三種函數:
non-virtual 函數: 你不希望 derived class 重新定義 (override, 重寫) 它.
virtual 函數: 你希望 derived class 重新定義 (override, 重寫) 它 , 且你對它已有默認定義 。
pure virtual 函數: 你希望 derived class 一定要重新定義 (override 重寫)它 , 你對它沒有默認定義 。
純虛函數:const=0

objectID()函數是non-virtual 函數,它可以生成ID號,不希望子類去重寫,父類的定義已足夠
error()函數,如果操作失敗,比如可以打印一串錯誤的標識,其設置為虛函數,是因為若子函數有不同的想法不同的打印信息,可進行重寫。重新定義后,子類調用時即是調用自己重寫的函數。
draw()函數是純虛函數,必須讓子類重寫定義。因為隨著類的不同,draw的方式也不同,所以需要子類自己去重寫。
在這里插入圖片描述
通過子類的對象調用父類的函數
框架將可以寫好的部分寫好,將不能決定的部分寫成虛函數,讓子類自己去定義,子類再調用父類函數的時候,遇到自己定義的部分,會去執行自己定義的函數,如圖中灰色線路徑所示。

在這里插入圖片描述
程序示例:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446618.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446618.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446618.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 數據結構 線性鏈表

#pragma once 減少頭文件組合,降低編譯出錯的概率作用等效于 #ifndef FUNC_H #define FUNC_H代碼主體#endif 線性表的定義 排隊問題 簡單的線性表 (物理 或者邏輯結構)1,數組2,鏈表線性表相關操作:1,線性表初始化2&a…

英語口語 week12 Thursday

英語文章 As the pace of life quickens with technological advancements, people are occupied by all kinds of trivial matters. They seem forever on the go. There’s no difficulty in imagining that the hustle and bustle of everyday life can make us lose focus…

H.264/AVC視頻編解碼技術詳解 第一章 視頻信息與壓縮編碼

H.264/AVC視頻編解碼技術詳解系列筆記 是對 H.264/AVC視頻編解碼技術詳解 課程的學習 文章目錄人與世界的交互視頻信號的表示方法視頻壓縮編碼視頻信息為什么可以被壓縮?視頻壓縮編碼的分類:視頻壓縮編碼的基本技術人與世界的交互 從遠古時代開始&#…

英語口語 week13 Monday

英語文章 Competitions between businesses can be very aggressive in contemporary society. However, the competition for talented personnel is thought to be the key to business competition. Wise employers consider their employees as the company’s core asset…

文件系統的由來

啟蒙篇 文件的由來 磁盤上保存的是一對十六進制的數據,如何切分數據形成不同的文件,也就是如何確定一個文件的起始和終止位置?將相關數據打包在一起形成一個文件,比如從什么位置開始到什么位置結束,是一張圖片、一段…

c++面向對象高級編程 學習七 轉換函數

轉換函數:對象A和對象B之間的互相轉換。 class Fraction { public:Fraction(int num,int den1):m_numerator(num),m_denominator(den){}operator double()const{return (double)(m_numerator/m_denominator);} private:int m_numerator; //分子int m_denominator;/…

英語口語 week13 Wednesday

英語文章 Despite his extraordinary success in writing fairy tales,Hans Christian Andersen preferred to living in a way of simplicity and frugality. He often wore an old hat when he went out. One day, a well-dressed man stopped Andersen on the street, inte…

數據結構 隊列

隊列 代碼 #include <stdio.h> #include <stdlib.h>/************************************************************************/ /* 隊列結構要素&#xff1a;隊列容量 內存指針 元素個數 隊列頭 對列尾*/ /********************************************…

c++面向對象高級編程 學習八 non-explicit-one-argement-ctor

explicit&#xff08;顯式的&#xff09;&#xff1a;作用是"禁止單參數構造函數"被用于自動類型轉換 non-explicit: class Fraction { public:Fraction(int num,int den1):m_numerator(num),m_denominator(den){}Fraction operator (const Fraction& f){retur…

操作系統 IO管理

學什么&#xff1f; I/O input / output 輸入&#xff1a;鼠標 鍵盤 手柄 觸摸屏 攝像頭 MTC 掃描儀輸出&#xff1a;顯示器 打印機 耳機 音響 既是輸入也是輸出&#xff1a;光驅 網卡 磁盤 U盤硬件&#xff1a;設備如何把數據返回到PC機&#xff0c;但是不同種類的設…

英語口語小組PPT--袁隆平

文章中文版 大家好,我是第一組的xxx,現在由我來為大家分享在我眼中的袁隆平.在我看來,他值得外界對他的稱贊,因為他對中國,對世界的貢獻是有目共睹的:他研發的雜交水稻解決了人民的溫飽問題,讓無數人享受到吃飽的幸福&#xff0c;看到了生活的希望.這足以讓他青史留名. 并且他…

c++面向對象高級編程 學習九 pointer-like classes

c的class設計出來有兩種形式&#xff0c;一種像指針&#xff0c;一種像函數 智能指針里包含普通指針&#xff0c;要寫 * 和 -> 的函數 sp->method(); //sp-> 經 T* operator*() const 函數&#xff0c;得到px //由于 箭頭符號&#xff08;->&#xff09;作用下去…

const int *a和int*const a 的區別詳解

補充知識 “const int i”與“int const i”之間的區別對變量來說&#xff0c;const 關鍵字可以限定一個變量的值不允許改變&#xff0c;從而保護被修飾的東西&#xff0c;防止意外修改&#xff0c;在一定程度上可以提高程序的安全性和可靠性。 代碼 const int * int i1 10…

codeforces 133A-C語言解題報告

133A題目網址 題目解析 1.輸入字符串,如果里面包含H,Q,9,就輸出YES,否則輸出NO 代碼 #include<stdio.h> #include<stdlib.h> #include<string.h>int main() {char c[100]{0};int flag0;int i;scanf("%s",c);for(i0;i<strlen(c);i){if(c[i]H…

c++面向對象高級編程 學習十 function-like classes

本節是設計一個class&#xff0c;使它的行為像一個函數。 如果一個東西能接受小括號()操作符&#xff0c;那么這個東西就稱之為函數&#xff0c;或像函數的東西。 下圖為三個函數對()的重載&#xff0c;這三個類均為像函數的類&#xff0c;它們可接受()操作符&#xff0c; 標…

數據結構 棧

代碼 #include <stdio.h> #include <stdlib.h>/************************************************************************/ /*棧應用示例--數制轉換要求&#xff1a;輸入任意的正整數N(十進制)&#xff0c;分別輸出該整數的二進制、八進制、十六進制的結果算法…

英語口語 Week14 Monday

英語文章 Thailand, a country in Southeast Asia with an area of about 514,000 square kilometers, has been increasingly prosperous in its tourism industry in the past few decades. Its capital is Bangkok and its major languages are Thai, Chinese and English.…

c++面向對象高級編程 學習十一 類模板、函數模板、成員模板

namespace經驗談&#xff1a; 團隊中函數或類的名字可能會沖突&#xff0c;因此使用namespace進行區分。 類模板&#xff1a; template<typename T> 函數模板&#xff1a; template<class T>&#xff0c;此處class可改成typename 函數模板在使用的時候&#xff0…

操作系統面試 總結

以下文章來源于程序員cxuan &#xff0c;作者cxuan 原文鏈接什么是操作系統 操作系統是管理硬件和軟件的一種應用程序。操作系統是運行在計算機上最重要的一種軟件&#xff0c;它管理計算機的資源和進程以及所有的硬件和軟件。它為計算機硬件和軟件提供了一種中間層&#xff…

英語口語week 14 Thursday

英語文章 A couple decided to go out to celebrate their wedding anniversary, so they called a babysitter. When the babysitter arrived, the two children had already been asleep. The babysitter soon got bored and went to the kitchen where she blended some wh…