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

C++ 虛函數(shù)與純虛函數(shù)代碼詳解

 更新時間:2021年08月13日 14:50:11   作者:胡小牧  
本文主要介紹了C++ 虛函數(shù)與純虛函數(shù)的使用與區(qū)別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

什么是虛函數(shù):

虛函數(shù) 是在基類中使用關(guān)鍵字 virtual 聲明的函數(shù),在C++ 語言中虛函數(shù)可以繼承,當(dāng)一個成員函數(shù)被聲明為虛函數(shù)之后,其派生類中的同名函數(shù)都自動生成為虛函數(shù),

虛函數(shù)主要體驗C++的多態(tài)方面,(多態(tài)是參數(shù)個數(shù)和類型相同而實現(xiàn)功能不同的函數(shù))

為了更好的里面虛函數(shù)請看下面的demo

#include <iostream>
#include <string>
using namespace std;
class Aname
{
public:
     virtual void function_name()
     {
          cout << "Aname調(diào)用了function_name" << endl;
     }
};
class Bname:public Aname
{
public:
     void function_name()
     {
          cout << "Bname調(diào)用了function_name" << endl;
     }
};
int main()
{
     Aname *a = new Bname();
     a->function_name();
}

這里由于類Aname 里面的function_name 被聲明為虛函數(shù), 所以雖然指針a 指向Aname 卻調(diào)用了

Bname 里面的function_name

打印結(jié)果為

如果類Aname 里面的函數(shù)沒有聲明虛函數(shù), 是調(diào)用A里面的函數(shù)的,

虛函數(shù)的注意事項:

1 只有類的成員函數(shù)才能為虛函數(shù)

2 靜態(tài)成員函數(shù)不能為虛函數(shù),內(nèi)聯(lián)函數(shù)和構(gòu)造函數(shù)不能為虛函數(shù)

存虛函數(shù)

是指被表明為不被具體實現(xiàn)的虛成員函數(shù),它不具備函數(shù)的功能,它在基類中沒有定義,但要求任何派生類都要定義自己的實現(xiàn)方法。在基類中實現(xiàn)純虛函數(shù)的方法是在函數(shù)原型后加"=0"

例如:

virtual void funtion1()=0

demo 認(rèn)識下存虛函數(shù)

#include <iostream>
#include <string>
using namespace std;
class Aname
{
public:
     virtual void function_name() = 0;
};
class Bname : public Aname
{
public:
     void function_name()
     {
          cout << "Bname調(diào)用了function_name" << endl;
     }
};
int main()
{
     Aname *a = new Bname();
     a->function_name();
}

存虛函數(shù)的注意事項:

1 存虛函數(shù)不能被實例化

2 virtual void function_name() = 0; 中 viertual 不能去掉,否則會報錯

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Java 深入探究講解工廠方法模式

    Java 深入探究講解工廠方法模式

    工廠方法模式(FACTORY METHOD)是一種常用的類創(chuàng)建型設(shè)計模式,此模式的核心精神是封裝類中變化的部分,提取其中個性化善變的部分為獨立類,通過依賴注入以達到解耦、復(fù)用和方便后期維護拓展的目的。它的核心結(jié)構(gòu)有四個角色,分別是抽象工廠、具體工廠、抽象產(chǎn)品、具體產(chǎn)品
    2022-04-04
  • Mybatis高級映射、動態(tài)SQL及獲得自增主鍵的解析

    Mybatis高級映射、動態(tài)SQL及獲得自增主鍵的解析

    MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis。這篇文章主要介紹了Mybatis高級映射、動態(tài)SQL及獲得自增主鍵的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Javassist如何操作Java 字節(jié)碼

    Javassist如何操作Java 字節(jié)碼

    這篇文章主要介紹了Javassist如何操作Java 字節(jié)碼,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-09-09
  • JAXB命名空間及前綴_動力節(jié)點Java學(xué)院整理

    JAXB命名空間及前綴_動力節(jié)點Java學(xué)院整理

    這篇文章主要給大家介紹了關(guān)于JAXB命名空間及前綴的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • SpringSecurity實現(xiàn)權(quán)限認(rèn)證與授權(quán)的使用示例

    SpringSecurity實現(xiàn)權(quán)限認(rèn)證與授權(quán)的使用示例

    本文主要介紹了SpringSecurity實現(xiàn)權(quán)限認(rèn)證與授權(quán)的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • Spring Boot 中的 @Field 注解的原理解析

    Spring Boot 中的 @Field 注解的原理解析

    本文詳細(xì)介紹了 Spring Boot 中的 @Field 注解的原理和使用方法,通過使用 @Field 注解,我們可以將 HTTP 請求中的參數(shù)值自動綁定到 Java 對象的屬性上,簡化了開發(fā)過程,提高了開發(fā)效率,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • 關(guān)于Java?中?Future?的?get?方法超時問題

    關(guān)于Java?中?Future?的?get?方法超時問題

    這篇文章主要介紹了Java?中?Future?的?get?方法超時,最常見的理解就是,“超時以后,當(dāng)前線程繼續(xù)執(zhí)行,線程池里的對應(yīng)線程中斷”,真的是這樣嗎?本文給大家詳細(xì)介紹,需要的朋友參考下吧
    2022-06-06
  • Docker使用Dockerfile自定義鏡像方式

    Docker使用Dockerfile自定義鏡像方式

    這篇文章主要介紹了Docker使用Dockerfile自定義鏡像方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Springboot使用Maven占位符@替換不生效問題及解決

    Springboot使用Maven占位符@替換不生效問題及解決

    這篇文章主要介紹了Springboot使用Maven占位符@替換不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Maven 配置文件 生命周期 常用命令詳解

    Maven 配置文件 生命周期 常用命令詳解

    Maven是圍繞著構(gòu)建生命周期的核心概念為原型,整個項目的創(chuàng)建和部署都是圍繞著生命周期展開的,一個生命周期由若干個生命周期階段組成。下面通過本文給大家介紹Maven 配置文件 生命周期 常用命令詳解,一起看看吧
    2017-11-11

最新評論