C語言中的結構體與C 中的類異同

2021-07-05 00:27:23 字數 1587 閱讀 3550

從c語言到c++,是程式設計思想的進步,技術發展的結果吧,所以c++基本上是相容c的語法的,c++的很多東西也是從c中繼承過來的,然後再發揚,c語言的結構體便是c++中類的雛形。        

簡單的一句話,c語言中的結構體是c++中類的祖先,也可以說c++中的類是c語言中結構體的超集,當然啦,祖先肯定是還沒有完全進化的,所以c語言中的結構體的功能相對於c++中的類的功能也相對簡單許多。

(1)下面舉乙個簡單的例子,以point類為例

c語言的結構體可以這樣使用:

(2)下面是c++中point類的程式:

從上面可以看出,只是在c結構體的基礎上稍稍加一點修改,便可以將c結構體變成c++的類;

(3)相同之處:

c語言的結構體和c++的類在c++程式中是可以通用的,類的內部可以包含函式,其實結構體內部也是可以包含函式的,

#include

using namespace std;

struct point

//class point

intx;

inty;

voiddisplay()

cout

structpoint p;

p.x=9;

p.y=0;

cout

return0;

這樣使用結構體也是可以的。

(4)不同之處:

可以看出,c語言結構體資料成員未加許可權修飾符,預設為public型別,可以直接輸入輸出,直接對結構體物件的資料成員進行操作。

如上圖,而c++中的類成員預設屬性為private型別,是不能直接進行操作的。

(4)c語言是面向過程的程式語言,c++是物件導向的程式語言,面向過程和物件導向是一種思想,不是完完全全可以區分開的,它沒有乙個明確的界限,它是程式語言發展的乙個過程,就如同c語言的結構體便是c++中類發展的雛形。

當然了,c++類的用法遠遠不止這些,這裡只是簡述一下結構體和類的區別,對於結構體和類的用法這裡不詳述,想要了解的朋友可以去學習c語言和c++物件導向程式設計,

中結構體與C語言中結構體的區別

在c語言中,可以定義結構體型別,將多個相關的變數包裝成為乙個整體使用。在結構體中的變數,可以是相同 部分相同,或完全不同的資料型別。在c語言中,結構體不能包含函式。在物件導向的程式設計中,物件具有狀態 屬性 和行為,狀態儲存在成員變數中,行為通過成員方法 函式 來實現。c語言中的結構體只能描述乙個物...

C與C 結構體異同

首先是結構體的定義和使用。在c語言中,結構體的定義一般配合typedef使用 struct loction typedef struct loctionloc typedef可以給乙個變數起 別名 在如上兩種定義方式中,當我們建立乙個結構體變數時,後者可以直接使用loc進行建立,而前者比較冗長 lo...

C語言中的結構體

在 c語言中,結構體 struct 指的是一種資料結構,是c語言中聚合資料型別 aggregate data type 的一類。結構體可以被宣告為 變數 指標或 陣列等,用以實現較複雜的 資料結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員 member 且這些成員可以為不同的型別,成員...