C++:05---class和struct

C++被稱為“C with class”,可見在C++中class是多么重要,與class類似的一個結構就是struct了,struct最早是在C語言中出現的,在C++中對struct的功能也進行了擴展。

class :

  • public(公有):在類內外、派生類中都可被訪問

  • protected(保護):希望與派生類共享但是不想被公共訪問所使用的訪問權限。在基類和派生類中(派生類的友元也可以訪問)可以被訪問,在類外無法訪問

  • private(私有):只有在類內可被訪問,類外和子類無法訪問

注意事項:

  • 成員不寫訪問屬性時,類的默認訪問屬性為private

  • 與結構體的不同:結構體默認屬性為public

下面就來說一說struct和class的區別吧:

1、默認的繼承權限

struct默認是公有繼承(public),class默認是私有繼承(private)

2、關于默認訪問權限

class中默認的成員訪問權限是private的,而struct中則是public的。

3、關于大括號初始化問題

struct在C語言中:
在C語言中,我們知道struct中是一種數據類型,只能定義數據成員,不能定義函數,這是因為C語言是面向過程的,面向過程認為數據和操作是

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

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

相關文章

leetcode34. 在排序數組中查找元素的第一個和最后一個位置

給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。 你的算法時間復雜度必須是 O(log n) 級別。 如果數組中不存在目標值,返回 [-1, -1]。 示例 1: 輸入: nums [5,7,7,8,8,10], target 8 輸…

C++:11---友元函數、友元類

一、友元(friend) 概念:通過友元,打破了類的封裝性,可以訪問類內的所有成員分類:友元函數、友元類二、友元函數 概念:友元函數是一個普通函數,不屬于類,但需要在類內表明友元關系 友元函數可訪問類內所有成員,但類不可以訪問友元函數…

leetcode75. 顏色分類

給定一個包含紅色、白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,并按照紅色、白色、藍色順序排列。 此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。 注意: 不能使用代碼…

C++:12---運算符重載

一、概念 對已有的運算符重新進行定義,賦予其另一種功能,以適應不同的數據類型重載的運算符是具有特殊名字的函數,該函數也有返回值、參數列表、函數體二、運算符重載的3種實現方式 成員函數:私有、公有、保護都可以友元函數:同上全局函數:只能訪問公有的三、運算符重載的…

Redis:03---Redis的啟動與配置參數大全

一、Redis的可執行文件當我們安裝完Redis之后,src和/usr/local/bin目錄下提供了下面這些可執行程序,我們稱之為Redis Shell:redis-serverRedis服務器redis-cliRedis命令行客戶端redis-benchmarkRedis性能測試工具redis-check-aofRedis AOF持久…

leetcode80. 刪除排序數組中的重復項 II

給定一個排序數組,你需要在原地刪除重復出現的元素,使得每個元素最多出現兩次,返回移除后數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組并在使用 O(1) 額外空間的條件下完成。 示例 1: 給定 nums [1,1,1,2…

Redis:04---鍵的基本命令(上)

一、KEYS:全量遍歷鍵KEYS pattern功能:用來獲取此數據庫中所有的鍵名注意事項:KEYS命令需要遍歷Redis中的所有鍵,當鍵的數量較多時會影響性能,不建議在生產環境下使用支持glob風格通配符格式,見下表&#x…

leetcode67. 二進制求和

給定兩個二進制字符串,返回他們的和(用二進制表示)。 輸入為非空字符串且只包含數字 1 和 0。 示例 1: 輸入: a "11", b "1" 輸出: "100" 示例 2: 輸入: a "1010", b "1011" 輸出…

C++:13---繼承(單一繼承、多重繼承、多級繼承、菱形繼承、虛繼承)

一、基類與派生類的概念 基類(父類):在繼承關系中處于上層的類派生類(子類):在繼承關系中處于下層的類class A;class B;class C:public A //C為A的子類,A為C的父類{};class D:public A,public B //D為A和B的子類,A和B均為D的父類{};二、類派生列表 派生類通過派生類列…

(十三) 深入淺出TCPIP之setsockopt參數詳解

在socket編程中我們會經常用到setsockopt這個函數,那么本節我們將對這個函數的參數和使用做說明: 首先看下函數原型: int setsockopt( int socket, int level, int option_name,const void *option_value, size_t ,ption_len); 第…

22種編程語言新年快樂

請允許我用22種編程語言&#xff0c;祝大家新年快樂 C語言&#xff1a;printf(“祝大家新年快樂”); C : cout<<“祝大家新年快樂”; OC: NSLog(“祝大家新年快樂”) QBasic : Print “祝大家新年快樂” Asp : Response.Write “祝大家新年快樂” PHP : echo “祝大家新年…

Redis:05---鍵的基本命令(下) 生存周期

一、設置鍵生存/過期時間生存時間&#xff08;Time To Live&#xff0c;TTL&#xff09;&#xff1a;在經過指定的秒數或者毫秒數之后&#xff0c;服務器就會自動刪除生存時間為0的鍵過期時間&#xff08;expire time&#xff09;&#xff1a;是一個UNIX時間戳&#xff0c;當鍵…

數論基礎代碼合集

歐幾里德 #include<iostream> using namespace std; int hcf(int a,int b) {int r0;while(b!0){ra%b;ab;br;}return(a); } lcd(int u,int v,int h) //ua&#xff0c;vb&#xff0c;h為最小公約數hcf(a,b); {return(u*v/h); } int main() {int a,b,x,y;cin>>…

C++:03---引用類型

一、概念 C++中的一種新的變量類型,作用是為變量取別名二、引用規則 引用被創建時必須被初始化(即必須指向一個對象,因此引用一旦被初始化,就不能再指向其他對象)int a = 10; int &p = a; //正確 int &p2; //錯誤,引用必須初始化引用的數據類型必須與被引用的…

三個博弈基礎

&#xff08;一&#xff09;巴什博奕&#xff08;Bash Game&#xff09;&#xff1a;只有一堆n個物品&#xff0c;兩個人輪流從這堆物品中取物&#xff0c;規定每次至少取一個&#xff0c;最多取m個。最后取光者得勝。 顯然&#xff0c;如果nm1&#xff0c;那么由于一次最…

(十五)nodejs循序漸進-高性能游戲服務器框架pomelo之Protobuf模塊

消息壓縮 在實際編程中&#xff0c;為了減少數據傳輸帶寬的消耗&#xff0c;提高傳輸效率&#xff0c;pomelo提供了對消息的壓縮&#xff0c;包括基于字典的對route的壓縮和基于protobuf的對具體傳輸數據的壓縮。 route壓縮 在實際編程中&#xff0c;網絡帶寬的有效數據負載…

C++:13---多態和虛函數表

多態的意思為“以一個public基類的指針/引用,尋址一個派生類對象”。 “多態”的關鍵在于通過基類指針或引用調用一個虛函數時,編譯時不確定到底調用的是基類還是派生類的函數,運行時才確定。這是如何實現的呢?請看下面的程序,該程序演示了多態類對象存儲空間的大小。 #in…

leetcode96. 不同的二叉搜索樹 動歸vs數學?

給定一個整數 n&#xff0c;求以 1 ... n 為節點組成的二叉搜索樹有多少種&#xff1f; 示例: 輸入: 3 輸出: 5 解釋: 給定 n 3, 一共有 5 種不同結構的二叉搜索樹: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 …

Redis:06---數據庫管理

一、服務器中的數據庫Redis服務器將所有數據庫都保存在服務器狀態redis.h/redisServer結構的db數組中&#xff0c;db數組的每個項都是一個redis.h/redisDb結構&#xff0c;每個redisDb結構代表一個數據庫&#xff1a;struct redisServer {// ...redisDb *db; // 一個數組&#…

leetcode95. 不同的二叉搜索樹 II

給定一個整數 n&#xff0c;生成所有由 1 ... n 為節點所組成的二叉搜索樹。 示例: 輸入: 3 輸出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解釋: 以上的輸出對應以下 5 種不同結構的二叉搜索樹&#xff1a; 1 3 …