結構體和類有相同的特性,但又有很大的區別,類是構成面向對象編程的基礎,但它是和結構體有著機器密切的關系。
我們在c語言中創建一個結構體我們使用如下方法:
類的創建方式和結構體幾乎一樣看如下的代碼:
但是大家注重到沒有,標准c中是不答應在結構體中聲明函數的,但c++中的類可以,這一點就和c有了本質的區別,很好的體現了c++面向對象的特點!
過去的c語言是一種非面向對象的語言
他的特性是:
程序=算法+數據結構
但c++的特性是
對象=算法+數據結構
程序=對象+對象+對象+對象+........
所以根據這一特性,我們在定義一個自己定義的結構體變量的時候,這個變量就應該是叫做對象或者叫實例
例如
test a;
那麼a就是test結構的一個對象(實例)
test結構體內的成員可以叫做是分量,例如:
a.socre=10.1f;
那麼number就是test結構的對象a的分量(或者叫數據成員,或者叫屬性)score;
在c語言中結構體中的各成員他們的默認存儲控制是public 而 c++中類的默認存儲控制是private,所以在類中的成員假如需要外部掉用一定要加上要害字public聲明成公有類型,這一特性同樣使用於類中的成員函數,函數的操作方式和普通函數差別並不大
例如上面的例子中的rp()成員函數,我們如故有如下定義
test a;
的話,調用rp()就應該寫成
a.rp();
成員函數的調用和普通成員變量的調用方式一致都采用.的操作符。
這一小節為了鞏固聯系我給出一個完整的例子。
如下(重要和非凡的地方都有具體的注解):