C++繼承(2)

2.基類和派生類間的轉換

?public繼承的派?類對象可以賦值給基類的指針/基類的引?。這?有個形象的說法叫切?或者切 割。寓意把派?類中基類那部分切出來,基類指針或引?指向的是派?類中切出來的基類那部分。

? 基類對象不能賦值給派?類對象。

? 基類的指針或者引?可以通過強制類型轉換賦值給派?類的指針或者引?。但是必須是基類的指針 是指向派?類對象時才是安全的。這?基類如果是多態類型,可以使?RTTI(Run-TimeType Information)的dynamic_cast來進?識別后進?安全轉換。

在這里插入圖片描述

class Person
{
protected:string _name; // 姓名 string _sex; // 性別 int _age; // 年齡 
};
class Student : public Person
{
public:int _No; // 學號 
};
int main()
{Student sobj;// 1.派?類對象可以賦值給基類的指針/引? Person* pp = &sobj;Person& rp = sobj;// ?類對象可以賦值給基類的對象是通過調?后?會講解的基類的拷?構造完成的 Person pobj = sobj;//2.基類對象不能賦值給派?類對象,這?會編譯報錯 sobj = pobj;return 0;}

3.繼承中的作用域

3.1 隱藏規則:

1.在繼承體系中基類和派?類都有獨?的作?域。

2.派?類和基類中有同名成員,派?類成員將屏蔽基類對同名成員的直接訪問,這種情況叫隱藏。 (在派?類成員函數中,可以使?基類::基類成員顯?訪問)

3.需要注意的是如果是成員函數的隱藏,只需要函數名相同就構成隱藏。

4.注意在實際中在繼承體系??最好不要定義同名的成員。

// Student的_num和Person的_num構成隱藏關系,可以看出這樣代碼雖然能跑,但是?常容易混淆 
class Person
{
protected:string _name = "?李?"; // 姓名 int _num = 111; // ?份證號 
};
class Student : public Person
{
public:void Print(){cout << " 姓名:" << _name << endl;cout << " ?份證號:" << Person::_num << endl;cout << " 學號:" << _num << endl;}
protected:int _num = 999; // 學號 
};
int main()
{Student s1;s1.Print();return 0;};

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

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

相關文章

easya2a: 一鍵將 LangChain Agent 發布為 A2A 服務

easya2a: 一鍵將 LangChain Agent 發布為 A2A 服務 隨著 A2A (Agent-to-Agent) 協議的發布&#xff0c;相關的實踐項目也逐漸涌現。對于許多希望體驗 A2A 功能&#xff0c;但又擔心學習成本和開發時間的開發者來說&#xff0c;推薦使用 easya2a——一個可以快速、無縫地將現有 …

原學之設計模式- 設計模式來源

引言 各位旅行者們你們好&#xff0c;我是小森&#xff0c;首先我為啥是程序員。學了技術快六年了&#xff0c;但一直都是斷斷續續&#xff0c;本身自己的條件&#xff0c;從2021年11月份開始下載原神&#xff0c;總而言之不了解一些抽卡機制導致退了并且刪除了具體賬號打算重新…

有鹿機器人:AI技術如何重新定義「掃地」這件小事?

當掃地成為一門“技術活”掃地&#xff0c;可能是人類最古老的清潔行為之一。從掃帚到吸塵器&#xff0c;再到今天的無人駕駛清潔設備&#xff0c;我們一直在尋找更高效、更徹底的方式維護環境整潔。但有鹿機器人的出現&#xff0c;讓“掃地”這件事有了新的定義——它不再只是…

62.不同路徑

dp問題描述 62.不同路徑 確定本題的狀態表示 dp[i,j]表示的是從左上角走到這個位置的路徑條數 確定本題的狀態轉移方程 根據已知條件&#xff1a;dp[0,0]1&#xff0c;dp[0,1]1&#xff0c;dp[1,0]1 本題的狀態轉移方程是&#xff1a; dp[i,j]dp[i,j-1]dp[i-1,j] 填表求…

python---包

文章目錄包的基本概念創建包的基本結構__init__.py文件導入包和模塊相對導入&#xff08;在包內部使用&#xff09;導入包和導入模塊的區別包是Python中組織模塊的一種方式&#xff0c;它允許你將相關的模塊分組在一起&#xff0c;形成一個層次結構。包的主要目的是幫助避免命名…

超詳細yolov8/11-obb旋轉框全流程概述:配置環境、數據標注、訓練、驗證/預測、onnx部署(c++/python)詳解

因為yolo的檢測/分割/姿態/旋轉/分類模型的環境配置、訓練、推理預測等命令非常類似&#xff0c;這里不再詳細敘述環境配置&#xff0c;主要參考【超詳細yolo8/11-detect目標檢測全流程概述&#xff1a;配置環境、數據標注、訓練、驗證/預測、onnx部署(c/python)詳解】&#xf…

創世理論達成 全關聯的動態振動網:量子世界的“底層邏輯”

全關聯的動態振動網&#xff1a;量子世界的“底層邏輯”&#xff08;不帶公式&#xff0c;超級詳細&#xff09;要真正理解量子世界的本質&#xff0c;我們需要跳出“粒子”和“波”的傳統框架&#xff0c;從量子場論的核心邏輯出發&#xff0c;用最生活化的類比和日常經驗&…

銀行間交易IMIX協議加密相關

加密流程 字段篩選與序列化 提取業務報文中標記為敏感的字段&#xff0c;生成待加密的數據塊 <!-- 示例&#xff1a;原始交易指令 --> <Order><Symbol>ABC123</Symbol> <!-- 非敏感 --><Price>100.50</Price> …

ABM和強化學習-2015年全國大學生數學建模競賽B題

多智能體系統&#xff08;Agent-Based Model, ABM&#xff09;和強化學習&#xff08;Reinforcement Learning, RL&#xff09;是兩個不同但可結合的概念&#xff0c;尤其在復雜系統建模和人工智能領域有重要應用。下面分別解釋它們&#xff0c;并說明二者的關聯&#xff1a; …

ALBEF/BLIP/BLIP2/Instruct BLIP/X Instruct BLIP

ALBEF 研究動機 ALBEF之前的一些方式&#xff0c; 視覺分支基本都是基于 dector的方式&#xff08;檢出目標框&#xff09;&#xff0c;如下圖所示&#xff0c;由于大量的數據沒有標框&#xff0c;因此視覺預訓練的受限于dector的檢測方式。創新點 能不能不再采用dector的方式訓…

數據結構——排序算法(簡單篇:冒泡排序、選擇排序、插入排序)

1?? 冒泡排序&#xff08;Bubble Sort&#xff09; 基本思想 重復地比較相鄰的兩個元素&#xff0c;如果順序錯誤就交換它們。一趟冒泡結束后&#xff0c;最大&#xff08;或最小&#xff09;的元素會“浮”到末尾。下一趟時可以少比較一次&#xff0c;因為最后的元素已經排好…

配置 Docker 鏡像加速,解決 docker pull 拉取鏡像失敗、docker search 查詢鏡像失敗等問題

一、概述 記錄時間 [2025-08-16] 在 Docker 學習中&#xff0c;可能會遇到諸如 docker 遠程倉庫無法訪問、docker pull 拉取鏡像失敗、docker search 查詢鏡像失敗等問題。 這是由于國內網絡對 docker 遠程倉庫的訪問受到限制。 那么在國內如何獲取 docker 鏡像呢&#xff1f…

【Python】Python 面向對象編程詳解?

Python 面向對象編程詳解? 文章目錄Python 面向對象編程詳解?前言一、面向對象的基本概念?1.1 類&#xff08;Class&#xff09;?1.2 對象&#xff08;Object&#xff09;?1.3 屬性&#xff08;Attribute&#xff09;?1.4 方法&#xff08;Method&#xff09;?二、類的定…

Redis 緩存和 Redis 分布式鎖

目錄 Redis 緩存 (Caching) 目的 核心邏輯 存儲形式總結 典型場景 Redis 分布式鎖 (Distributed Lock) 目的 核心作用 核心邏輯 典型場景 核心區別總結 Redis 緩存 (Caching) 在Redis中&#xff0c;數據是以鍵值對的形式存儲的&#xff0c;其中鍵總是字符串類型&…

[ java 基礎 ] 了解編程語言的第一步

目錄 一. IDE (1). 使用IDE的原因: (2). 創建和使用: (3). 常用快捷方式與設置 (4). 注釋 (5). 關鍵字 (6). 標識符 (7). 變量 (8). 數據類型 1) 整數類型 2) 浮點類型 3) 布爾類型(boolean) 4) 字符類型(char) 5) 字符串 6) 基本數據類之間的轉換 (9). 運算符…

JavaScript 閉包與遞歸深度解析:從理論到實戰

本文將系統梳理 JavaScript 中閉包與遞歸的核心概念、實戰應用及面試要點,涵蓋課堂知識點、作業實現、面試題解析等內容,幫助你全面掌握這兩大重要概念。 一、閉包:函數與變量的綁定藝術 1.1 閉包的定義與核心特性 閉包是 JavaScript 中一種特殊的語言現象,其核心定義可…

牛 CDR3 單抗:抗病毒領域的 “納米級精準導彈”

一、病毒防御的天然克星病毒感染的核心難題在于其表面的 “糖衣炮彈”—— 以 HIV 為例&#xff0c;其 Env 蛋白表面密集的糖鏈形成物理屏障&#xff0c;傳統抗體難以穿透。而牛 CDR3 單抗的超長 CDR H3 結構&#xff08;50-60 個氨基酸&#xff09;如同 “納米探針”&#xff…

鴻蒙應用開發和Vue網頁開發中生命周期的區別

因為下節課就可以寫講解兩者生命周期代碼的實戰了&#xff0c;寫介紹一下理論方面的區別&#xff1a;鴻蒙應用開發&#xff08;ArkUI范式&#xff09;與Vue網頁開發在生命周期管理上的核心區別&#xff0c;這直接反映了原生OS應用與Web應用在架構哲學和運行環境上的根本差異??…

基于SpringBoot+Vue的輕手工創意分享平臺(WebSocket即時通訊、協同過濾算法、Echarts圖形化分析)

&#x1f388;系統亮點&#xff1a;WebSocket即時通訊、協同過濾算法、Echarts圖形化分析&#xff1b;一.系統開發工具與環境搭建1.系統設計開發工具后端使用Java編程語言的Spring boot框架 項目架構&#xff1a;B/S架構 運行環境&#xff1a;win10/win11、jdk17前端&#xff1…

Java應屆生求職八股(5)---并發編程篇

線程基礎線程與進程的區別進程是程序的一次執行過程。它資源分配的單位。線程是程序執行的單位。并行和并發的區別單核CPU下&#xff0c;線程串行。&#xff08;并發&#xff1a;多線程輪流使用一個或多個CPU&#xff09;多核CPU下&#xff0c;每個核都可調度線程。&#xff08…