1樓:匿名使用者
像這樣的一個c++的struct,當寫出如下**的時候:
clock clock;
clock.tick();
編譯器自動轉換成如下類似的c**:
struct clock clock;
clock_construct(&clock); /*構造clock*/
因為c++的成員函式都有一個this指標,呼叫的時候必須傳遞一個this指標,所以會多出來一個引數。如果硬要用c語言來模仿c++的這種呼叫方式,只能是這樣:
typedef struct clock clock;
void clock_construct(clock * const this); /*「建構函式」,必須手動呼叫*/
void clock_tick(clock * const this); /*模仿clock_set函式即可*/
void clock_show(clock * const this);
void clock_run(clock * const this);
void clock_set(clock * const this, int h, int m, int s)
void clock_destruct(clock * const this); /* 「解構函式」,必須手動呼叫*/
函式指標其實沒必要,因為還是得想辦法單另傳遞this指標。
2樓:匿名使用者
其實按照規定,無論c還是c++,struct裡面都不能定義函式的
某些c++編譯器能支援定義函式,是因為都把他們當class來處理了
c語言與c++結構體的區別
3樓:匿名使用者
c語言的結構就是值型別,跟int,char沒有什麼區別
c++的結構跟類已經非常接近了,就是如果不具體說明,預設為共有
4樓:
比如說這個結構體吧.
struct mystruct
str;
在c++裡可以這樣用 mystruct s1;mystruct 就是一個型別,在c裡只能這樣用其 struct mystruct s1 mystruct不是一個型別必須和struct關鍵字連用.就這點不同了.
5樓:匿名使用者
我這樣跟你說吧,c語言中的結構體與c++裡的結構體沒有什麼區別,但在c++裡多了一個類,其實類和結構體是一樣的,只不是類在預設的情況下是私有的,而結構體在預設情況下是公有的;例如:我們寫到
struct name;
其實它真正的是:
struct name;
在c++中
以class name;
其實是class name;
6樓:
本質區別就是c++的struct已經是類了,不過與class唯一區別在於預設成員屬性是public而非private
所以c++中的定義結構體和定義class幾乎一致
請問c++的類和c裡面的struct有什麼區別
7樓:宣小翠習韋
c++裡面的類預設狀態時private的
而且可以有成員函式
更安全c裡面的struct
預設是public,一般不能有成員函式而只有資料成員謝謝採納
8樓:徭沛萍招迪
類預設是私有的
struct預設是公有
而且類可以自定義建構函式,
struct有預設的建構函式(參考c++
pimer)
9樓:
(1)c++類中屬性預設訪問型別為private,而c++中的struct預設的訪問型別為public
(2)c++類可以有繼承,虛擬函式,多型,而c++中struct不可以。
c語言struct裡面不可以有函式,只能有變數。 c++給c中的struct功能擴充套件了
10樓:
原來c語言裡只有結構體struct,而且不允許在裡面定義函式。後來c++對c做了擴充,併產生了class,但注意的是,struct 還是值型別,而 class 是物件型別,不過在c++裡struct可以理解成為一種特殊的類,結構體和類可以通用.
11樓:圭騫騫磨燕
如果你在c++編譯器利用
你說的是c++中
class
和struct
有兩個區別
1.同上面他們說的
class
成員預設是
private
struct
成員預設是
public
2.class
繼承方式預設是私有繼承
struct
繼承方式預設是共有繼承
如果你說的是c++的類
和c裡面的struct
區別類有虛表
支援物件導向特性
struct只不過是多種資料成員簡單的封裝編譯器構造的時候是不一樣的
太多了一句話兩句話也說不清楚。況且我也不都清楚建議查現代編譯原理
12樓:匿名使用者
唯一區別就是
struct預設的成員的訪問型別是public
class預設的成員訪問型別是private
13樓:匿名使用者
類和結構體的區別
1. class和structure很相似, 從技術層面講,class是引用,而structure則是數值. 有人很形象的說
class裡有行動,方法,成員,是有機體的結合,而structure則是活生生的有機體,
2. 通俗的理解,class包涵structure, class裡有方法拉,成員拉,什麼滴,
而structure只有資料,
一.類與結構的示例比較:
結構示例:
public struct person}
類示例:
public class testtime}
呼叫過程:
public class test}
〈由廈嫻睦
c++的類和c裡面的struct有什麼區別?
14樓:匿名使用者
c++類裡面有成員函式,預設私有
c++的結構預設為共有
c語言結構,是值型別,不能有函式
15樓:御含靈
c++的struct和class是一回事,不過用struct宣告的結構,所有的成員和函式預設都是public的,class裡面所有的成員和函式預設都是private;c++的結構可以繼承
c裡面的結構只是變數的聚合體,結構不能有函式,c++的struct可有構造和解構函式 複製 以及其他成員函式;除了這一點其他都是一樣的
16樓:匿名使用者
(1)c++類中屬性預設訪問型別為private,而c++中的struct預設的訪問型別為public
(2)c++類可以有繼承,虛擬函式,多型,而c++中struct不可以。
c語言struct裡面不可以有函式,只能有變數。 c++給c中的struct功能擴充套件了
17樓:匿名使用者
(2)c 類可以有繼承,虛擬函式,多型,而c 中struct不可以。 c語言struct裡面不可以有函式,只能有變數。 c 給c中的struct功能擴充套件了 唯一區別就是
18樓:卞壯海流如
c++的struct可以當作class來用,他和c++中class的唯一的區別是,class中的成員預設是private,而struct的成員預設為public。
c中的struct只能是一些變數的集合體,可以封裝資料卻不可以隱藏資料,而且成員不可以是函式。
19樓:顧定宓蕙
struct的成員的預設訪問說明符為public,而class的成員的預設訪問說明符為private。其他沒有區別
c++物件導向的類class和c語言的結構體struct有什麼區別?
20樓:匿名使用者
struct只是簡單的把不同型別的資料,行為封裝起來,所有成員型別都是對外開放的。而class同樣是封裝,但它可以設定private型別,對外隱藏資料成員或方法。
21樓:
class 預設成員屬性是private,struct 預設成員屬性是public.相比之下class 更封裝更好
22樓:匿名使用者
可以說一般應用上,沒太大區別,用結構體就差不多了,class比struce多了繼承和派生等特性,我們在一般程式設計中還是多用struce
23樓:匿名使用者
標準c++中
struct 和class 的唯一區別是struct預設是public
class則為private
不過習慣上在class裡定義函式
struct只定義變數
24樓:匿名使用者
類可以實現細節屏避,只留介面函式
結構體也可以實現類的大部分功能,除了對資料的訪問許可權設定
25樓:
你先好好理解理解什麼是物件導向,就明白了兩者的區別
26樓:匿名使用者
struct沒有繼承,沒有封裝,要說封裝只有初步封裝。而class把資料,介面可以以三種型別封裝,private,public,protected;還可以繼承和派生。但是它們都可以提供自己的介面函式,建構函式。
一個類可以由結構繼承而來。struct只能叫做資料的集合,外部可以任意訪問,但是類就完成了封裝,維護了資料安全,這就是物件導向的理念。
27樓:
class預設私有,struct預設公有,封裝性的實現方式不一樣
c語言和c++在語法上有那些區別?要詳細具體一點!!!
28樓:匿名使用者
/*總得語法上c++更加靈活,隨便想到了幾個寫出來*/struct t;
do_some_thing(int &i) //c++專有的引用型別,函式中對i的操作將影響原變數。
main() //這樣註釋 c語言不允許的另外還有過載,類等等c語言裡沒有的,不再贅述。
以上所謂c語言都是89版iso/ansi c,c++是在這個版本上開發的,所以c89是c++的子集。後來c又有了所謂99版的c99,支援了單行註釋,還加了幾個c++都沒有的關鍵字,開始與c++分道揚鑣了。
29樓:匿名使用者
這個多了。。。建議你看書去。。。
30樓:匿名使用者
簡單說c程序導向,c++物件導向
c++在c的基礎上做了很大擴充套件,增加了類,支援函式過載,模板等新特性c++通過類對過程實現了封裝
c/c++ 類和結構體的差別
31樓:豆哥的每一天
c/c++ 類和結構體的的區別:
1、結構體基本用在很多資料,需要一個結構體來封裝這些資料。而類的話,是物件導向的思想,可以有很多介面讓人呼叫,私有變數等外部不能呼叫,還有保護型別的變數。
2、結構體也可以被認為是一種特殊的類,它不存在任何函式,構造和解構函式也沒有,而且是一個公共的的類。
3、結構體在預設情況下成員是公共的(public),類在預設情況下成員是私有的(private)。
4、c++結構體內部成員變數及成員函式預設的訪問級別是public,而c++類的內部成員變數及成員函式的預設訪問級別是private。
5、c++結構體的繼承預設是public,而c++類的繼承預設是private。
6、類要加上public變成共有的才能被訪問,而結構本身就是共有的可直接訪問。
7、c定義結構體變數時需要加struct關鍵字,c++中定義結構體變數時可以不加struct關鍵字。
32樓:全採褚子騫
c結構體
c是程序導向的程式語言。在c語言中,結構體是用作一種資料聚合方式,將一組關聯緊密的資料組成統一的資料進行操作。其功能是最基本的,在c++結構體和c++類中同樣包含該功能。
c++結構體
c++是物件導向的程式語言。結構體的表現形式,使用方法與c語言的結構體一致。
區別:c++結構體是物件導向的,可以在其中定義函式。
c++的結構體存在訪問許可權(預設public)。可以通過private方法修飾內部成員變數是否可以被修改。
c++類
c++類是物件導向封裝的基礎,功能和c++結構體類似,同樣可以定義函式。
區別:c++類的預設訪問許可權是private。
網路編成語言和C語言的區別,c語言網路程式設計 網路程式設計什麼語言
網路程式設計這個概念太大了,包括很多東西,需要各種語言。大概給你說一說吧。傳輸層以下的程式設計技術,一般來說是用匯編 c語言這一類與底層結合很緊密的程式語言。比如,基本的路由器程式設計 網路層資料交換技術程式設計等等。其實就是socket程式設計,通過socket埠和其餘的電腦通訊。windows程...
組合語言與C 的區別,組合語言和C 語言有什麼區別
彙編是最基礎的程式語言.c 是一種物件導向物件的語言.c 要想在系統上執行,最終是轉換為機器碼.彙編也是,但是彙編轉換為機器碼比較容易.c 轉換則要先轉換為彙編.c也可以稱作高階語言.但是,c語言在c 之下.起一個過渡作用.如果你想學好程式設計.先學c語言或者組合語言.鄙人建議你先學組合語言 然後再...
程式語言和組合語言有什麼區別啊,C語言和組合語言的區別是什麼?
首先玩糾正的是,組合語言也是一種程式語言,屬於程式設計。那彙編 典型的低階語言 和高階語言有什麼區別呢?起初,人們程式設計用的是機器語言,機器語言只有0和1。機器語言缺點很多,有3點最為顯著 1 難學難記難用 2 程式設計效率低 3 可移植性差 就是說,編好的程式在這臺機器上能用,在別的機器上劉不能...