C++中面向?qū)ο笥心男┗靖拍?創(chuàng)新互聯(lián)

C++中面向?qū)ο笥心男┗靖拍??很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元管城做網(wǎng)站,已為上家服務(wù),為管城各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
面向?qū)ο蟮恼Z言

    在大一上學期,我們學習了C語言,它是一門非常經(jīng)典,非常基礎(chǔ)的語言,所有計算機學科的同學們估計都沒有逃脫它的魔爪,而C++從名字上就非常清楚了,它是C的一種衍生,它幾乎包括C的所有內(nèi)容,但是他們的設(shè)計思路卻大不相同,C是一門面向過程的程序,而C++是面向?qū)ο蟮某绦?,下面我們來解釋一下這兩者的區(qū)別。

面向過程:分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了。
面向?qū)ο螅?/strong>是把構(gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
例如五子棋,面向過程的設(shè)計思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最后結(jié)果。把上面每個步驟用分別的函數(shù)來實現(xiàn),問題就解決了。
而面向?qū)ο蟮脑O(shè)計則是從另外的思路來解決問題。整個五子棋可以分為 1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統(tǒng),負責繪制畫面,3、規(guī)則系統(tǒng),負責判定諸如犯規(guī)、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的i變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規(guī)則系統(tǒng))來對棋局進行判定。
可以明顯地看出,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設(shè)計中分散在了總多步驟中,很可能出現(xiàn)不同的繪制版本,因為通常設(shè)計人員會考慮到實際情況進行各種各樣的簡化。而面向?qū)ο蟮脑O(shè)計中,繪圖只可能在棋盤對象中出現(xiàn),從而保證了繪圖的統(tǒng)一。
功能上的統(tǒng)一保證了面向?qū)ο笤O(shè)計的可擴展性。比如我要加入悔棋的功能,如果要改動面向過程的設(shè)計,那么從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的循序都要進行大規(guī)模調(diào)整。如果是面向?qū)ο蟮脑?,只用改動棋盤對象就行了,棋盤系統(tǒng)保存了黑白雙方的棋譜,簡單回溯就可以了,而顯示和規(guī)則判斷則不用顧及,同時整個對對象功能的調(diào)用順序都沒有變化,改動只是局部的。
再比如我要把這個五子棋游戲改為圍棋游戲,如果你是面向過程設(shè)計,那么五子棋的規(guī)則就分布在了你的程序的每一個角落,要改動還不如重寫。但是如果你當初就是面向?qū)ο蟮脑O(shè)計,那么你只用改動規(guī)則對象就可以了,五子棋和圍棋的區(qū)別不就是規(guī)則嗎?(當然棋盤大小好像也不一樣,但是你會覺得這是一個難題嗎?直接在棋盤對象中進行一番小改動就可以了。)而下棋的大致步驟從面向?qū)ο蟮慕嵌葋砜礇]有任何變化。
當然,要達到改動只是局部的需要設(shè)計的人有足夠的經(jīng)驗,使用對象不能保證你的程序就是面向?qū)ο螅鯇W者或者很蹩腳的程序員很可能以面向?qū)ο笾摱忻嫦蜻^程之實,這樣設(shè)計出來的所謂面向?qū)ο蟮某绦蚝茈y有良好的可移植性和可擴展性。

(這是在百度上找的答案!不是自己寫的,謝謝回答問題的大佬?。。。?/p>

  • 面向?qū)ο蟮幕靖拍?p>

1.對象

  科學的解釋:面向?qū)ο蠓椒ㄖ械膶ο?,是系統(tǒng)中用來描述客觀事實的一個實體,它是用來構(gòu)成系統(tǒng)的一個基本單位。對象由一組屬性和一組行為構(gòu)成。

  自我解釋:就比如說“人“是一個非常大的概念,但是具體到你自己本人,你就是那個對象,有實體有具體意義的那個,就是對象,看完了對類的表示,希望你們好懂一些,畢竟語文不好。。。

2.類

  把眾多的事物歸納,劃分成一些類,分類所依據(jù)的原則是抽象,即忽略事物的非本質(zhì)特性,只注意那些與當前目標有關(guān)的本質(zhì)特性,從而找出事物的共性,把具有共同性質(zhì)的事物劃分成一類,得出一個抽象的概念,例如,石頭,樹木,汽車,房屋等。

3.封裝 

  封裝是面向?qū)ο蠓椒ǖ囊粋€重要原則,就是把對象的屬性和服務(wù)結(jié)合成一個獨立的系統(tǒng)單位,并盡可能隱藏對象的內(nèi)部細節(jié)。

4.繼承

  繼承是面向?qū)ο蠹夹g(shù)能夠提高軟件開發(fā)效率的重要原因之一,其定義是:特殊類的對象擁有其一般類的全部屬性與服務(wù),稱作特殊類對一般類的繼承。

  舉個例子,我們認識了輪船的特征之后,再考慮客輪時,因為知道客輪也是輪船,于是可以認為它具有輪船的一切特征,從而只需把精力集中于客輪獨有的特征上。

5.多態(tài)性

  多態(tài)性是指在一般類中定義的屬性或行為,被特殊類繼承后,可以具有不同的數(shù)據(jù),類型或則表現(xiàn)出不同的行為。(這一點在之后結(jié)合具體的例子講解啦?。?/p>

  • 完整的程序過程

C++中面向?qū)ο笥心男┗靖拍?></p><p>看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。</p>            <p>
                名稱欄目:<a href=C++中面向?qū)ο笥心男┗靖拍?創(chuàng)新互聯(lián)
本文來源:http://bm7419.com/article30/hsopo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航品牌網(wǎng)站建設(shè)、微信公眾號、網(wǎng)站維護、標簽優(yōu)化、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)