結構體
結構體其實是一種特殊的類。是c++繼承c語言得來的,但是與類不同有以 下兩點
1.關鍵字為 struct,類的關鍵字為class.
2.其預設屬性為public,類的預設屬性為private
其他與c++中類的使用方法相同下面舉乙個例子說明結構體的使用
#include
using
namespace std;
struct test
intgetx()
intgety()
};intmain()
聯合體
聯合體利用關鍵字 union宣告,最主要的特點是儲存空間的共用,其中成員也包括private public 以及protected屬性,但是由於共用乙個儲存空間的特點所以。任何資料不可能同時有效,具體儲存如下圖所示
以上為聯合體記憶體示意圖。
可以看到共用乙個記憶體,所以當有以下**
union mark;i=
1;j=2
當j的值等於2時,i的值會被覆蓋,因為他們之間共用乙個記憶體。
列舉類
同列舉型別相似具體列舉型別值,但是與列舉型別不同的是,列舉類有強作用域,所以在列舉值的同時需要加上限定域,所有不會重名,意義也會更加清晰。
舉例如下
enum
mode;
並且列舉類可以設定底層值,具體格式如下
enum calss 列舉型別名:底層型別;其中預設為int,也可以指定其他型別。
下面將三個類融合寫乙個例子,建立乙個考試資訊的類,裡面有三種統計的方式分別是 int char bool,根據三種型別輸出不同形式的分數,具體**如下
#include
# include
using
namespace std;
class
examinfo
mode;
//無名聯合體,就是沒有名字的類,可以直接用
union
;public
://不同型別的建構函式,根據不同的模式選擇不同的初始化物件
examinfo
(string name,
char grade1)
:name
(name)
,mode
(grade)
,grade
(grade1)
examinfo
(string name,
int precent)
:name
(name)
,mode
(percentage)
,percent
(precent)
examinfo
(string name,
bool pass)
:name
(name)
,mode
(pass)
,pass
(pass)
void
show()
;};void examinfo::
show()
cout << endl;
}int
main()
執行**結果如下
以上就是結構體 聯合體 以及列舉類的基本概念
結構體 聯合體 列舉
1 結構體struct 結構體的作用 在網路協議 通訊控制 嵌入式系統的c c 程式設計中,我們要傳送的不是簡單的位元組流 char型陣列 二是多種資料組合起來的乙個整體,其表現形式是乙個結構體。使用struct的注意事項 1 下面看乙個題目 結果 6 12 這裡涉及到結構體的記憶體對齊方式。1 關...
結構體 聯合體 列舉
結構體 1.宣告乙個結構體型別的一般形式為 struct 結構體名 成員表列 如 struct student 表示可選項 注 宣告不是定義,故不可對成員列表中的成員進行初始化。定義別名 方法一 如 struct 結構體名 typedef struct 結構體名 別名 方法二 如 typedef s...
C C 學習筆記4 結構體聯合體列舉
include include include 圖形繪製 的架構 很多種型別的圖元,我要繪製它們。圖元的型別 enum shape type struct point struct shape struct rect struct circle u void init circle shape st...