C++学习笔记之二:通过结构体来理解类
生活随笔
收集整理的這篇文章主要介紹了
C++学习笔记之二:通过结构体来理解类
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如果我們熟悉C中的結(jié)構(gòu)體的話,理解C++中的類是很容易的。在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)建對(duì)象。但C中的結(jié)構(gòu)體不允許有函數(shù);
???????? 二、不同之處:結(jié)構(gòu)體定義中默認(rèn)情況下的成員是public,而類定義中的默認(rèn)情況下的成員是private的。
實(shí)際上,C中的結(jié)構(gòu)體只涉及到數(shù)據(jù)結(jié)構(gòu),而不涉及到算法,也就是說在C中數(shù)據(jù)結(jié)構(gòu)和算法是分離的,而到C++中一類或者一個(gè)結(jié)構(gòu)體可以包含函數(shù)(這個(gè)函數(shù)在C++我們通常中稱為成員函數(shù)),C++中的結(jié)構(gòu)體和類體現(xiàn)了數(shù)據(jù)結(jié)構(gòu)和算法的結(jié)合。在所有的面向過程的程序思想中,算法和數(shù)據(jù)結(jié)構(gòu)是分離的,而在面向?qū)ο蟮某绦蛩枷胫?#xff0c;算法和數(shù)據(jù)結(jié)構(gòu)是緊密結(jié)合在一起的。瑞士計(jì)算機(jī)科學(xué)家尼克勞斯·沃思(Niklaus Wirth)曾提出“程序=數(shù)據(jù)結(jié)構(gòu)+算法”這一著名公式,實(shí)際上到了面向?qū)ο蟪绦蛟O(shè)計(jì)思想中,這一公式應(yīng)該是“程序=(數(shù)據(jù)結(jié)構(gòu)+算法)”,因?yàn)樗惴ê蛿?shù)據(jù)結(jié)構(gòu)是一個(gè)整體。任何算法都是針對(duì)特定的數(shù)據(jù)結(jié)構(gòu)的。而且在面向?qū)ο蟪绦蛟O(shè)計(jì)中,我們可以這樣來理解:
???????? 對(duì)象=(算法+數(shù)據(jù)結(jié)構(gòu))
???????? 程序=(對(duì)象+對(duì)象+...)
算法和數(shù)據(jù)結(jié)構(gòu)被捆綁成一個(gè)類,而對(duì)象又是類的實(shí)例化。
????????? 一、相同之處:結(jié)構(gòu)體中可以包含函數(shù);也可以定義public、private、protected數(shù)據(jù)成員;定義了結(jié)構(gòu)體之后,可以用結(jié)構(gòu)體名來創(chuàng)建對(duì)象。但C中的結(jié)構(gòu)體不允許有函數(shù);
???????? 二、不同之處:結(jié)構(gòu)體定義中默認(rèn)情況下的成員是public,而類定義中的默認(rèn)情況下的成員是private的。
實(shí)際上,C中的結(jié)構(gòu)體只涉及到數(shù)據(jù)結(jié)構(gòu),而不涉及到算法,也就是說在C中數(shù)據(jù)結(jié)構(gòu)和算法是分離的,而到C++中一類或者一個(gè)結(jié)構(gòu)體可以包含函數(shù)(這個(gè)函數(shù)在C++我們通常中稱為成員函數(shù)),C++中的結(jié)構(gòu)體和類體現(xiàn)了數(shù)據(jù)結(jié)構(gòu)和算法的結(jié)合。在所有的面向過程的程序思想中,算法和數(shù)據(jù)結(jié)構(gòu)是分離的,而在面向?qū)ο蟮某绦蛩枷胫?#xff0c;算法和數(shù)據(jù)結(jié)構(gòu)是緊密結(jié)合在一起的。瑞士計(jì)算機(jī)科學(xué)家尼克勞斯·沃思(Niklaus Wirth)曾提出“程序=數(shù)據(jù)結(jié)構(gòu)+算法”這一著名公式,實(shí)際上到了面向?qū)ο蟪绦蛟O(shè)計(jì)思想中,這一公式應(yīng)該是“程序=(數(shù)據(jù)結(jié)構(gòu)+算法)”,因?yàn)樗惴ê蛿?shù)據(jù)結(jié)構(gòu)是一個(gè)整體。任何算法都是針對(duì)特定的數(shù)據(jù)結(jié)構(gòu)的。而且在面向?qū)ο蟪绦蛟O(shè)計(jì)中,我們可以這樣來理解:
???????? 對(duì)象=(算法+數(shù)據(jù)結(jié)構(gòu))
???????? 程序=(對(duì)象+對(duì)象+...)
算法和數(shù)據(jù)結(jié)構(gòu)被捆綁成一個(gè)類,而對(duì)象又是類的實(shí)例化。
轉(zhuǎn)載于:https://www.cnblogs.com/thankyourfish/archive/2005/09/02/228363.html
總結(jié)
以上是生活随笔為你收集整理的C++学习笔记之二:通过结构体来理解类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重新开始写博客
- 下一篇: s3c2440移植MQTT