C與C++中結(jié)構(gòu)體的區(qū)別
C中的結(jié)構(gòu)體和C++中結(jié)構(gòu)體的不同之處:在C中的結(jié)構(gòu)體只能自定義數(shù)據(jù)類型,結(jié)構(gòu)體中不允許有函數(shù),而C++中的結(jié)構(gòu)體可以加入成員函數(shù)。
C++中的結(jié)構(gòu)體和類的異同:
一、相同之處:結(jié)構(gòu)體中可以包含函數(shù);也可以定義public、private、protected數(shù)據(jù)成員;定義了結(jié)構(gòu)體之后,可以用結(jié)構(gòu)體名來創(chuàng)建對象。但C中的結(jié)構(gòu)體不允許有函數(shù);也就是說在C++當中,結(jié)構(gòu)體中可以有成員變量,可以有成員函數(shù),可以從別的類繼承,也可以被別的類繼承,可以有虛函數(shù)。
二、不同之處:結(jié)構(gòu)體定義中默認情況下的成員是public,而類定義中的默認情況下的成員是private的。類中的非static成員函數(shù)有this指針,(而struct中沒有是錯誤的,一直被誤導(dǎo)啊,經(jīng)過測試struct的成員函數(shù)一樣具有this指針),類的關(guān)鍵字class能作為template模板的關(guān)鍵字 即template<class T> class A{}; 而struct不可以。
實際上,C中的結(jié)構(gòu)體只涉及到數(shù)據(jù)結(jié)構(gòu),而不涉及到算法,也就是說在C中數(shù)據(jù)結(jié)構(gòu)和算法是分離的,而到C++中一類或者一個結(jié)構(gòu)體可以包含函數(shù)(這個函數(shù)在C++我們通常中稱為成員函數(shù)),C++中的結(jié)構(gòu)體和類體現(xiàn)了數(shù)據(jù)結(jié)構(gòu)和算法的結(jié)合。
- 深入剖析C++中的struct結(jié)構(gòu)體字節(jié)對齊
- 詳解C++中的指針結(jié)構(gòu)體數(shù)組以及指向結(jié)構(gòu)體變量的指針
- C++結(jié)構(gòu)體用法實例分析
- C++基礎(chǔ)入門教程(三):數(shù)組、字符串、結(jié)構(gòu)體、共用體
- C++結(jié)構(gòu)體數(shù)組詳細解析
- C++中指向結(jié)構(gòu)體變量的指針
- C/C++語言中結(jié)構(gòu)體的內(nèi)存分配小例子
- 淺析C++中結(jié)構(gòu)體的定義、初始化和引用
- 一道超經(jīng)典的C++結(jié)構(gòu)體的題目
- 詳解C++程序中定義struct結(jié)構(gòu)體的方法
相關(guān)文章
《戰(zhàn)狼》中兩軍作戰(zhàn)入侵代碼竟然是輸出星期幾的!
這篇文章主要介紹了《戰(zhàn)狼》中兩軍作戰(zhàn)入侵代碼竟然是輸出星期幾的,喜歡戰(zhàn)狼和編程的同學(xué)可以了解下。2017-11-11
動態(tài)數(shù)組C++實現(xiàn)方法(分享)
下面小編就為大家?guī)硪黄獎討B(tài)數(shù)組C++實現(xiàn)方法(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
Visual?Studio2022的完全卸載及安裝到D盤的操作方法
這篇文章主要介紹了Visual?Studio2022的完全卸載以及完全安裝到D盤,因為VS如果隨便寫在會有很多很多的亂七八糟的東西掉出來,所以我們選擇制式一點的卸載方式,需要的朋友可以參考下2022-09-09

