類和對象的基本概念

類和對象的基本概念

  • C和C++中struct區別
  • 類的封裝
    • 封裝
    • 訪問權限
    • 總結
    • struct和class的區別
  • 將成員變量設置為private

C和C++中struct區別

  1. C語言struct只有變量
  2. C++語言struct 既有變量,也有函數

類的封裝

封裝

  1. 把變量(屬性)和函數(操作)合成一個整體,封裝在一個類中
  2. 對變量和函數進行訪問控制

訪問權限

  1. 在類的內部(作用域范圍內),沒有訪問權限之分,所有成員可以相互訪問
  2. 在類的外部(作用域范圍外),訪問權限才有意義:public,private,protected
  3. 在類的外部,只有public修飾的成員才能被訪問,在沒有涉及繼承與派生時,

在這里插入圖片描述

總結

//封裝兩層含義
//1. 屬性和行為合成一個整體
//2. 訪問控制,現實事物本身有些屬性和行為是不對外開放
class Person{
//人具有的行為(函數)
public:void Dese(){ cout << "我有錢,年輕,個子又高,就愛嘚瑟!" << endl;}
//人的屬性(變量)
public:int mTall; //多高,可以讓外人知道
protected:int mMoney; // 有多少錢,只能兒子孫子知道
private:int mAge; //年齡,不想讓外人知道
};int main(){Person p;p.mTall = 220;//p.mMoney 保護成員外部無法訪問//p.mAge 私有成員外部無法訪問p.Dese();return EXIT_SUCCESS;
}

類是一個數據類型,類是抽象的
對象是一個具體的變量,占用內存空間。

struct和class的區別

class默認訪問權限為private,struct默認訪問權限為public

class A{int mAge;
};
struct B{int mAge;
};void test(){A a;B b;//a.mAge; //無法訪問私有成員b.mAge; //可正常外部訪問
}

將成員變量設置為private

  1. 可賦予客戶端訪問數據的一致性。
  2. 可細微劃分訪問控制。
	class AccessLevels{
public://對只讀屬性進行只讀訪問int getReadOnly(){ return readOnly; }//對讀寫屬性進行讀寫訪問void setReadWrite(int val){ readWrite = val; }int getReadWrite(){ return readWrite; }//對只寫屬性進行只寫訪問void setWriteOnly(int val){ writeOnly = val; }
private:int readOnly; //對外只讀訪問int noAccess; //外部不可訪問int readWrite; //讀寫訪問int writeOnly; //只寫訪問
};

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

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

相關文章

交換機部分綜合實驗

實驗要求 1.內網IP地址使用172.16.0.0/16 2.sw1和sW2之間互為備份; 3.VRRP/mstp/vlan/eth-trunk均使用; 4.所有pc均通過DHcP獲取Ip地址; 5.ISP只配置IP地址; 6.所有電腦可以正常訪問IsP路由器環回 實驗拓撲 實驗思路 1.給交換機創建vlan&#xff0c;并將接口劃入vlan 2.在SW1和…

Unity Render Streaming 云渲染 外網訪問

初版&#xff1a; 日期&#xff1a;2024.5.20 前言&#xff1a;臨時思路整理&#xff0c;后期會詳細補充 環境&#xff1a; 1. 阿里云服務器 需要安裝好nodejs 、npm 2. windows電腦&#xff0c;需安裝好 nodejs 、npm 3.Unity 2021.3.15f1 4.Unity Render Streaming …

31.GDB介紹及簡單使用

文章目錄 基本用法查看匯編代碼Text User Interface(TUI)refernece 歡迎訪問個人網絡日志&#x1f339;&#x1f339;知行空間&#x1f339;&#x1f339; GDB 是 GNU Debugger的縮寫&#xff0c;是GNU軟件系統中的標準調試器&#xff0c; 很多類UNIX系統都可以使用GDB&#xf…

【論文解讀】Overview of the Scalable Video Coding Extension of the H.264/AVC Standard

介紹 該篇論文是一篇關于H.264/AVC標準可擴展視頻編碼(SVC)擴展的綜述論文,由Heiko Schwarz、Detlev Marpe和Thomas Wiegand撰寫,發表在《IEEE Transactions on Circuits and Systems for Video Technology》2007年9月第17卷第9期上。 論文解讀 摘要: H.264/AVC視頻編…

鄉村振興的農業供給側結構性改革:優化農業產業結構,提升農產品質量,滿足市場需求,實現美麗鄉村產業振興

一、引言 鄉村振興戰略是我國當前及未來一段時間內的重大戰略部署&#xff0c;旨在推動農業農村現代化&#xff0c;實現城鄉融合發展。在鄉村振興戰略中&#xff0c;農業供給側結構性改革是核心任務之一。通過優化農業產業結構、提升農產品質量、滿足市場需求&#xff0c;不僅…

韓國云主機遠程故障怎么排查?

韓國云主機遠程故障可能是由于多種原因引起的&#xff0c;包括網絡問題、服務器故障、安全設置、客戶端問題等。下面是針對韓國云主機遠程故障的排查步驟和解決方法&#xff1a; 檢查網絡連接 1.使用 ping 命令 在本地計算機上使用 ping 命令檢查與云主機之間的網絡連接。如果無…

AI巨頭爭相與Reddit合作:為何一個古老的論壇成為AI訓練的“寶藏”?

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

debian nginx upsync consul 實現動態負載

1. consul 安裝 wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg echo "deb [signed-by/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_r…

MariaDB 給指定列值自動加密(持久數據加觸發器)

文章目錄 代碼插入時&#xff0c;自動加密更新時&#xff0c;自動加密查看觸發器數據操作示例update數據取出解密取 注意一次嘗試&#xff0c;看加密后數據長度 參考鏈接&#xff1a; 一篇非常好的講解觸發器的文章&#xff1a;示例、原理MySQL/MariaDB觸發器。 用觸發器自動加…

前端工程化07-常見的包管理工具npm、yarn、cnpm、npx、pnpm

8、包管理工具 8.1、包管理工具概述 npm包管理工具、在安裝node的時候這個東西就已經安裝過了&#xff0c;通過npm去管理包的時候這個時候回有一個配置文件叫做package.json,他是以json的方式來書寫對應的一個配置文件&#xff0c;這個配置文件是可以添加特別多的一些字段的&…

input輸入多行文本,保存為.dot文件和對應的.txt文件

需求 不管是上面的dot還是這個dot 變成 input輸入文本按“# ? ?”結束保存在dot文本文件夾下&#xff0c;用txt保存每個文件文件名&#xff1a; 編號. 第二行有字文字 時間戳 代碼 首先&#xff0c;我會創建一個Python腳本&#xff0c;它將接受用戶的輸入&#xff0c;直到…

案例題(第二版)

案例題目 信息系統架構設計 基本概念 信息系統架構&#xff08;ISA&#xff09;是對某一特定內容里的信息進行統籌、規劃、設計、安排等一系列的有機處理的活動。特點如下 架構是對系統的抽象&#xff0c;它通過描述元素、元素的外部可見屬性及元素之間的關系來反映這種抽象…

css屬性之間總是有換行

問題 在create-next-app創建項目的時候,只要我沒有選擇eslint的時候&#xff0c;就不會在保存的時候每個屬性之間有換行&#xff0c;但是創建項目的時候選擇eslint&#xff0c;保存的時候就會在每條屬性間有換行 回答 當你使用 create-next-app 創建項目并選擇使用 ESLint 時…

k8s 1.28.10 瀏覽器訪問6443查看api,需要證書

添加證書 使用client-certificate-data和client-key-data生成一個p12文件 1.生成client-certificate-data grep client-certificate-data ~/.kube/config | head -n 1 | awk {print $2} | base64 -d >> kubecfg.crt2.生成client-key-data grep client-key-data ~/.kub…

萬象生圖,一個windows文生圖的軟件

網址 https://support.qq.com/products/637894/?id155553 支持文生圖&#xff0c;支持提示詞本地翻譯&#xff0c;支持提示詞權重語法&#xff0c;支持樣例和風格 支持圖處理&#xff0c;包括去除背景和圖像放大 支持各種快速生圖模型&#xff0c;如LCM、TCD、Lightning、…

為什么self-attention要除以一個根號dk

簡單說法是為了讓方差到1&#xff0c;推公式也好推。但是沒幾個人說為什么方差要到1. 如果不除以根號dk&#xff0c;顯然QK有可能很大&#xff0c;這就讓softmax更有能力得到接近one-hot的結果。這本應是好的&#xff0c;但是從實踐來看&#xff0c;我們并不要求一定要輸出one-…

K8S中YAML案例

目錄 案例&#xff1a;自主式創建service并關聯上面的pod 案例&#xff1a;部署redis 案例&#xff1a;部署myapp 案例&#xff1a;部署MySQL數據庫 總結 1.K8S集群中訪問流向 K8S集群外部&#xff1a;客戶端——nodeIP&#xff1a;nodeport——通過target port——podIP…

Java入門基礎學習筆記44——String

為什么要學習String的處理呢&#xff1f; 開發中&#xff0c;對字符串的處理是非常常見的。 String是什么&#xff1f;可以做什么&#xff1f; java.lang.String 代表字符串。可以用來創建對象封裝字符串數據&#xff0c;并對其進行處理。 1、創建對象 2、封裝字符串數據 3…

Linux安裝zsh并配置oh-my-zsh

配置oh-my-zsh 查看當前shell安裝zsh切換到zsh配置ohmysh 查看當前shell cat /etc/shells# /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash安裝zsh sudo apt install zsh# /etc/shells: valid login s…

blender 烘焙渲染圖片,已經導出fbx,導出貼圖。插件生成圖片

1.新建一個模型。選擇資產瀏覽器的材質&#xff0c;并拖動到模型身上&#xff0c;如下圖。資產瀏覽器的材質可以網上找。 2.打開著色器面板。正下方著色器窗口中&#xff0c;點擊空白取消選擇&#xff0c;然后右擊-添加-著色器-原理化BSDF&#xff0c;右擊-添加-紋理-圖像紋理。…