C与C++中struct及C++中struct与class的区别
生活随笔
收集整理的這篇文章主要介紹了
C与C++中struct及C++中struct与class的区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| struct | class | 備注 | |
| 成員函數(shù) | 能 | 能 | 均有構(gòu)造函數(shù)及析構(gòu)函數(shù) |
| 繼承性 | 能 | 能 | |
| 多態(tài)性 | 能 | 能 | 均有虛函數(shù) |
| 默認(rèn)成員屬性 | public | private | |
| 默認(rèn)繼承屬性 | public | private | |
| 能否定義模板 | 否 | 能 | |
| 性質(zhì) | 數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)體 ,能兼容C的結(jié)構(gòu)體 | 類對(duì)象的實(shí)現(xiàn)體 | |
| 初始化 | 如果沒有構(gòu)造函數(shù) ,可以用大括號(hào)初始化; 如果有構(gòu)造函數(shù),不可以 用大括號(hào)進(jìn)行初始化 | 一般用構(gòu)造函數(shù)初始化, 如果沒有構(gòu)造函數(shù),且為public 屬性,可以用大括號(hào)進(jìn)行初始化, private屬性不可以用大括號(hào)進(jìn)行初始化 | |
| 互相繼承 | struct可以繼承class | class可以繼承struct |
| c | c++ | 備注 | |
| 區(qū) 別 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | C是過稱化語言,struct只能作為復(fù)雜的數(shù)類型定義,struct只能定義成員變量, 不能定義成員函數(shù),但可以使用指針來實(shí)現(xiàn)。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? | C++新增支持面向?qū)ο笏枷敫拍钪蓄惖母拍?#xff0c;struct具有更強(qiáng)大功能,不僅能和數(shù)據(jù)組織在一起,還可以與數(shù)據(jù)相關(guān)的方法組織在一起,具有與class相似的功能 | C中的struct與C++中struct的差別比C++中struct與C++中的class的差別要大 |
總結(jié)
以上是生活随笔為你收集整理的C与C++中struct及C++中struct与class的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于解决Win32控制台程序编译后自动退
- 下一篇: VC++之绘制线条