類繼承-多繼承虛繼承

#include<iostream>
using namespace std;
class A1
{
public:int a = 10;};
class A2 {
public:int b = 20;
};
class B :public A1, public A2
{
public:int c = 30;
};
int main(){B b;cout << b.a << b.b << b.c << endl;return 0;
}

如果基類和派生類中的成員重名,在成員前面加類名和域名解析符就行了

#include<iostream>
using namespace std;
class A1
{
public:int a = 10;};
class A2 {
public:int a= 20;
};
class B :public A1, public A2
{
public:int a = 30;
};
int main(){B b;cout << b.a << b.A1::a << b.A2::a << endl;return 0;
}

多繼承的特殊情況:菱形繼承

?B和C都繼承于A,D繼承B和C。

A里有個a,B C繼承后各自有這個a,但是D繼承B C就從B C各個繼承了個a,一共倆a了

編譯器找到了兩個不知道用哪個;

所以我們可以在a前面加上類名和作用域解析符;

#include<iostream>
using namespace std;
class A
{
public:int a = 10;};
class B:public A
{
public:};
class C:public A
{
public:};
class D:public C,public B{};
int main(){D d;d.C::a = 80;d.B::a=30;cout << &d.C::a << endl<< &d.B::a << endl;return 0;
}
00000015C87FF568
00000015C87FF56C

這倆a地址不一樣不是一個a;

但是對象d真的需要兩個a嗎,如果a表示的是姓名或年齡顯然一個人不需要兩個姓名或者年齡;

用虛繼承;

00000001000FF8F8
00000001000FF8F8C:\Users\33007\source\repos\ConsoleApplication8\x64\Debug\ConsoleApplication8.exe (進程 4608)已退出,代碼為 0。
按任意鍵關閉此窗口. . .

這樣他倆就是一個變量了;

這么些就完了:

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

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

相關文章

STM32-HAL-SDIO-(sd卡的識別,整理后的版本)

1STM32Cube操作 1-1配置時鐘 1-2配置調試端口 1-3配置uart 1-4配置SDIO 選擇數據傳輸引腳個數 需改配置&#xff08;圖中改了兩處&#xff0c;選中的和最后一個&#xff09; 1-5打開DMA 傳輸方向改為圖中的&#xff08;由內轉向外設&#xff09;在改圖中的一次讀寫的大小 1-…

圖像處理調試軟件推薦

對于圖像處理的調試&#xff0c;使用具有圖形用戶界面&#xff08;GUI&#xff09;且支持實時調整和預覽的圖像處理軟件&#xff0c;可以大大提高工作效率。以下是幾款常用且功能強大的圖像處理調試軟件推薦&#xff1a; ImageJ/FijiMATLABOpenCV with GUI LibrariesNI Vision …

Java中關于構造代碼塊和靜態代碼塊的解析

構造代碼塊 特點&#xff1a;優先于構造方法執行,每new一次,就會執行一次 public class Person {public Person(){System.out.println("我是無參構造方法");}{System.out.println("我是構造代碼塊"); //構造代碼塊} }public class Test {public stati…

面試專區|【54道Spring Cloud高頻題整理(附答案背誦版)】

什么是Spring Cloud&#xff1f; Spring Cloud是一個基于Spring Boot的開源框架&#xff0c;它提供了在分布式系統中集成各種服務治理功能的工具&#xff0c;如配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態等。其主要目…

【推薦圖書】深入淺出Spring Boot 3.x

推薦原因 這部SpringBoot3.x經典之作&#xff0c;時隔六年迎來重磅升級&#xff01; 適合java開發相關讀者 購買鏈接 商品鏈接&#xff1a;https://item.jd.com/14600442.html 介紹 書名&#xff1a;深入淺出Spring Boot 3.x ISBN&#xff1a;978-7-115-63282-1/ 作者&…

「ETL趨勢」分區支持PostgreSQL、Greenplum、Gauss200, 定時任務支持Kettle

FineDataLink作為一款市場上的頂尖ETL工具&#xff0c;集實時數據同步、ELT/ETL數據處理、數據服務和系統管理于一體的數據集成工具&#xff0c;進行了新的維護迭代。本文把FDL4.1.9最新功能作了介紹&#xff0c;方便大家對比&#xff1a;&#xff08;產品更新詳情&#xff1a;…

【國產開源可視化引擎Meta2d.js】鋼筆

鋼筆 鋼筆是和其他眾多繪圖工具&#xff08;Photoshop、Sketch、Illustrator&#xff09;中一致的鋼筆工具&#xff0c;能夠很方便的在線繪制各種小圖標 在線體驗&#xff1a; 樂吾樂2D可視化 示例&#xff1a; // 開始繪畫&#xff1a;curve。除了curve&#xff0c;還有poly…

c++應用網絡編程之二網絡的IO模型

一、網絡編程的開發平臺 一般來說&#xff0c;目前開發者面對的主流開發平臺就是Windows和類Unix&#xff0c;或者干脆就是Windows和Linux平臺。至于如IBM或其它等公司的相關平臺&#xff0c;可能對絕大多數開發者來說&#xff0c;可能一生都遇不到。至于嵌入式平臺&#xff0…

上位機圖像處理和嵌入式模塊部署(mcu項目1:用戶手冊)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】 一個完整的產品&#xff0c;除了上位機軟件、固件、硬件、包裝之外&#xff0c;一般還需要一個用戶手冊。好的用戶手冊應該能夠兼顧到大多數人的認…

力扣(3200)- 三角形的最大高度

好方法&#xff1a; 垃圾方法&#xff1a;

Python面試題:請解釋 `lambda` 函數是什么,并舉一個例子

lambda函數是Python中用于創建小型匿名函數的一種方式。這些函數通常用于需要一個簡單函數的場景&#xff0c;例如作為參數傳遞給高階函數。lambda函數以lambda關鍵字開始&#xff0c;后跟參數列表和表達式&#xff0c;語法形式如下&#xff1a; lambda arguments: expression…

nginx配置stream代理

項目中遇到某些服務在內網&#xff0c;需要外網訪問的情況&#xff0c;需要配置代理訪問。可用nginx搭建代理服務。 TCP代理 通過nginx的stream模塊可以直接代理TCP服務&#xff0c;步驟如下&#xff1a; 在/etc/nginx/下新建proxy文件夾&#xff0c;用于存放代理配置。此處…

吉洪諾夫正則化隨筆

前言 前幾天在回顧壓縮感知中的特征選擇與LASSO回歸發現了這個Tikhonov regularization&#xff0c;查了一下叫個如題的名字。先來淺說一下正則化這玩意&#xff1a;正則化&#xff08;Regularization&#xff09;是一種用來防止模型過擬合&#xff08;Overfitting&#xff09…

孫溟?篆刻《睡片原諒一切,醒來不問過往》

孫溟?篆刻《睡片原諒一切&#xff0c;醒來不問過往》 佛陀言&#xff1a;睡前原諒一切&#xff0c;醒來不問過往&#xff0c;珍惜所有不期而遇&#xff0c;看淡所有不辭而別甲辰夏溟?于寒舍小窗下刊。

相關向量機RVM算法介紹繼承sklearn-SVM-API實現回歸預測算例

一、相關向量機RVM與支持向量機SVM對比 1、相關向量機&#xff08;RVM&#xff09; ①定義與原理 相關向量機&#xff08;Relevance Vector Machine, RVM&#xff09;是一種基于概率模型的機器學習算法&#xff0c;主要用于分類和回歸分析。基于稀疏貝葉斯學習框架&#xff…

Springboot助農農產品銷售系統-計算機畢業設計源碼16718

摘要 SpringBoot助農農產品銷售系統旨在通過利用SpringBoot框架開發一個便捷高效的農產品銷售平臺。該系統包括用戶注冊登錄、商品瀏覽、購物車管理、訂單生成、支付功能等模塊。通過整合支付接口、地圖定位、推薦系統等技術&#xff0c;提供給用戶更好的購物體驗。本文介紹了…

Docker安裝遇到問題:curl: (7) Failed to connect to download.docker.com port 443: 拒絕連接

問題描述 首先&#xff0c;完全按照Docker官方文檔進行安裝&#xff1a; Install Docker Engine on Ubuntu | Docker Docs 在第1步&#xff1a;Set up Dockers apt repository&#xff0c;執行如下指令&#xff1a; sudo curl -fsSL https://download.docker.com/linux/ubu…

人工智能開發中的數據隱私

人工智能開發中的數據隱私對于建立用戶信任和遵守嚴格法規至關重要。保護敏感信息可確保合乎道德的人工智能使用并防止有害的數據泄露。 為什么在人工智能開發中優先考慮數據隱私至關重要 人工智能的迅猛發展開啟了一個前所未有的技術進步時代&#xff0c;徹底改變了各行各業&…

使用Python繪制雙向條形圖

使用Python繪制雙向條形圖 雙向條形圖效果代碼 雙向條形圖 雙向條形圖用于比較兩個類別的數值分布&#xff0c;條形在中軸線兩側對稱排列。這種圖表常用于顯示兩個變量的對比情況&#xff0c;例如男女不同年齡段人口數量對比。 效果 代碼 import matplotlib.pyplot as plt i…

linux的服務管理

systemd systemd 是一個系統和服務管理器&#xff0c;用于Linux操作系統中&#xff0c;旨在替代傳統的Unix系統V初始化系統&#xff08;SysV init&#xff09;。 不一定所有使用 yum 安裝的軟件都可以通過 systemctl start 來管理。能否通過 systemctl start 管理取決于軟件包…