欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中什么是虛函數(shù)

 更新時間:2025年01月27日 09:44:46   作者:思wu邪  
虛函數(shù)是C++中的一種機制,允許在基類中聲明一個函數(shù),并在派生類中對其進行重新定義,從而實現(xiàn)多態(tài)性,虛函數(shù)通過基類指針或引用調用派生類的函數(shù),實現(xiàn)運行時綁定,虛函數(shù)的關鍵是使用`virtual`關鍵字修飾函數(shù)聲明,并且虛函數(shù)可以有默認實現(xiàn),也可以是純虛函數(shù)

虛函數(shù)是指:在某基類中聲明為virtual并在一個或多個派生類中被重新定義的成員函數(shù),即被virtual關鍵字修飾的成員函數(shù);格式為“virtual 函數(shù)返回類型 函數(shù)名(參數(shù)表) {函數(shù)體}”。
在某基類中聲明為 virtual 并在一個或多個派生類中被重新定義的成員函數(shù),用法格式為:;實現(xiàn)多態(tài)性,通過指向派生類的基類指針或引用,訪問派生類中同名覆蓋成員函數(shù)。

簡單地說,那些被virtual關鍵字修飾的成員函數(shù),就是虛函數(shù)。

首先:強調一個概念定義一個函數(shù)為虛函數(shù),不代表函數(shù)為不被實現(xiàn)的函數(shù)。定義它為虛函數(shù)是為了允許用基類的指針來調用子類的這個函數(shù)。定義一個函數(shù)為純虛函數(shù),才代表函數(shù)沒有被實現(xiàn)。定義純虛函數(shù)是為了實現(xiàn)一個接口,起到一個規(guī)范的作用,規(guī)范繼承這個類的程序員必須實現(xiàn)這個函數(shù)。

class Animal
{
public:
	//Speak函數(shù)就是虛函數(shù)
	//函數(shù)前面加上virtual關鍵字,變成虛函數(shù),那么編譯器在編譯的時候就不能確定函數(shù)調用了。
	virtual void speak()
	{
		cout << "動物在說話" << endl;
	}
};

class Cat :public Animal
{
public:
	void speak()
	{
		cout << "小貓在說話" << endl;
	}
};

int main() {
	Animal* a = new Cat(); //
	a->speak();//小貓在說話
	Animal b = Cat();
	b.speak();//動物在說話,不明白這里為什么沒有發(fā)生多態(tài)
	system("pause");
	return 0;
}

這個例子是虛函數(shù)的一個典型應用,通過這個例子,也許你就對虛函數(shù)有了一些概念。它虛就虛在所謂“推遲聯(lián)編”或者“動態(tài)聯(lián)編”上,一個類函數(shù)的調用并不是在編譯時刻被確定的,而是在運行時刻被確定的。由于編寫代碼的時候并不能確定被調用的是基類的函數(shù)還是哪個派生類的函數(shù),所以被成為“虛”函數(shù)。 虛函數(shù)只能借助于指針或者引用來達到多態(tài)的效果。

到此這篇關于什么是虛函數(shù)的文章就介紹到這了,更多相關什么是虛函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 一篇文章帶你了解C語言二分查找的簡單應用

    一篇文章帶你了解C語言二分查找的簡單應用

    這篇文章主要介紹了二分查找算法在C語言程序中的使用示例,文中最后提到了使用二分查找法一個需要注意的地方,需要的朋友可以參考下
    2021-08-08
  • 利用C語言實現(xiàn)簡易版掃雷

    利用C語言實現(xiàn)簡易版掃雷

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易版掃雷,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • C語言中qsort函數(shù)用法及用冒泡排序實現(xiàn)

    C語言中qsort函數(shù)用法及用冒泡排序實現(xiàn)

    qsort函數(shù)是由C語言提供的標準庫函數(shù), 它的實現(xiàn)思想是快速排序。這篇文章主要介紹了C語言中qsort函數(shù)用法及用冒泡排序實現(xiàn)qsort函數(shù)功能,需要的可以參考一下
    2022-10-10
  • C++線性時間的排序算法分析

    C++線性時間的排序算法分析

    這篇文章主要介紹了C++線性時間的排序算法分析,是非常經典的非比較排序算法,對于C++程序員有很大的借鑒價值,需要的朋友可以參考下
    2014-08-08
  • 在C++中自定義宏的簡單方法

    在C++中自定義宏的簡單方法

    這篇文章主要介紹了在C++中自定義宏的簡單方法,作者建議使用類似定義函數(shù)一樣的方法來定義宏,需要的朋友可以參考下
    2015-07-07
  • Visual Studio Code上添加小程序自動補全插件的操作方法

    Visual Studio Code上添加小程序自動補全插件的操作方法

    這篇文章主要介紹了Visual Studio Code上添加小程序自動補全插件的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 詳解C++實現(xiàn)鏈表的排序算法

    詳解C++實現(xiàn)鏈表的排序算法

    鏈表排序思想和數(shù)組排序類似,區(qū)別就是數(shù)組遍歷容易,數(shù)據(jù)交換也容易;鏈表(單項鏈表)只能一個方向遍歷,不能逆序遍歷,且不能隨機訪問,所以排序比較麻煩。本文將詳細介紹鏈表排序的方式,并且用C++來實現(xiàn)
    2021-06-06
  • C語言雙向鏈表實現(xiàn)根據(jù)使用頻率安排元素位置的功能實例代碼

    C語言雙向鏈表實現(xiàn)根據(jù)使用頻率安排元素位置的功能實例代碼

    這篇文章主要介紹了C語言雙向鏈表實現(xiàn)根據(jù)使用頻率安排元素位置的功能實例代碼的相關資料,需要的朋友可以參考下
    2017-03-03
  • C語言工程文件該如何寫(以三子棋游戲為例)

    C語言工程文件該如何寫(以三子棋游戲為例)

    工程上寫代碼應分為多個文件,那么你知道C語言工程文件該如何寫嗎,本文就以以三子棋游戲為例,介紹一下,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • C++中Boost的轉換函數(shù)

    C++中Boost的轉換函數(shù)

    這篇文章介紹了C++中Boost的轉換函數(shù),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論