(1)c的結構體內不允許有函式存在,c++允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式、析構函式和this指標的。
(2)c的結構體
對內部成員變數的
訪問許可權只能是public,而c++允許public、protected、private三種。
(3)c的結構體是不可以繼承的,c++的結構體是可以從其他的結構體或者類繼承過來的。
(4)在c中定義結構體型別用typedef,如下:
typedef struct complex
complex;
則,可以這樣定義結構體變數
complex complex1;
但是如果不使用typedef,則必須這樣定義
struct complex complex1;
complex實際上就是struct complex的別名,另外這裡也可以不寫complex(就不能使用struct complex complex了)
typedef struct
complex;
但是在c++中,比較簡單
struct complex
;
定義結構體變數時直接使用
complex complex1;
(5)在c++中使用typedef的話,會造成區別:
struct complex
complex; //這裡complex是乙個變數
typedef struct complex2
complex2; //這裡complex2是乙個結構體型別
使用時對於complex可以直接訪問 complex.read,但是對於complex2則必須先定義結構體變數complex2 complex2_2,然後才能訪問complex2_2.read。
整理 C語言和C 中結構體的區別
struct stt c 1.struct stt ex 2.使用 typedef struct stt st 可以直接 st stt c 1.struct stt ex 2.stt ex 3.需要注意的是 struct student stu1 等價於student stu1 而非起了乙個別名 另...
const 在C語言和C 語言中的區別
const 在c語言和c 語言中的區別 1 c語言中的 const 是定義了乙個 const 變數,const 用來限定乙個變數是唯讀的,不具備寫的功能,即是不可變的 c 語言中的 const 則是定義了乙個常量 const int a 10 int arr a 在c語言中是錯誤的,因為在c語言中是...
結構體 C 和C語言中的結構體的區別
在c中定義乙個結構體型別要用typedef typedef struct student stu 於是在宣告變數的時候就可 stu stu1 如果沒有typedef就必須用struct student stu1 來宣告 這裡的stu實際上就是struct student的別名。stu struct ...