我是在今學(xué)期才開(kāi)始看C和C ,現(xiàn)在C學(xué)的基礎(chǔ)還好,C 算是大概體系了解,不過(guò)對(duì)你這個(gè)問(wèn)題還是挺有感觸,就以一個(gè)初學(xué)者態(tài)度跟你講講我的感受吧!希望讓有興趣發(fā)展編程的你能快速進(jìn)入這個(gè)領(lǐng)域。
首先,我不茍同上面哪位仁兄的說(shuō)法,其實(shí),C和C 都可以說(shuō)是面向過(guò)程的語(yǔ)言,但C 更提供了面向?qū)ο蟮姆椒ǎ枰f(shuō)明一點(diǎn),C 是倡導(dǎo)面向?qū)ο缶幊谭椒ǖ模瑧?yīng)為這是適用現(xiàn)代技術(shù)發(fā)展的要求,簡(jiǎn)單理解,面向?qū)ο蟮木幊谭椒ň褪穷A(yù)先設(shè)置好一些常用的,實(shí)用的類庫(kù),當(dāng)編程時(shí)要用到時(shí),引用就可以了(通過(guò)對(duì)類進(jìn)行實(shí)例化),就好像是預(yù)先生產(chǎn)出一部洗衣機(jī),要洗衣服時(shí)候直接把衣服放進(jìn)去,打開(kāi)洗衣機(jī)的啟動(dòng)按鈕就可以了,在面向?qū)ο缶幊讨?,假如我們已?jīng)有了要引用的類庫(kù)(這些類也可以自己編),我們只要做“啟動(dòng)洗衣機(jī)按鈕”這個(gè)動(dòng)作就可以了,這就是面向?qū)ο缶幊?。面向過(guò)程的編程,簡(jiǎn)單理解,就是除了一些基本的類似輸入輸出,數(shù)學(xué)函數(shù)之外,基本都是要全部一條龍的自己設(shè)計(jì)。
C和C 都是MS公司出的,它還有的C#就是完全面向?qū)ο蟮母呒?jí)語(yǔ)言,功能非常強(qiáng)大,與。net平臺(tái)一起構(gòu)成了MS的戰(zhàn)略。
不好意思,還是說(shuō)回你感興趣的東西吧!其實(shí)學(xué)C和c 不用太多的數(shù)學(xué)知識(shí),它要求你無(wú)非兩樣?xùn)|西:1.邏輯性2.興趣,循環(huán)控制如“for,while語(yǔ)句”,指針,函數(shù)調(diào)用是學(xué)習(xí)C和C 的核心和重點(diǎn),也是精華所在,尤其是C語(yǔ)言。個(gè)人建議:假如你不是要做一個(gè)C程員的話,在c學(xué)到一定基礎(chǔ)很程度時(shí)候可以轉(zhuǎn)向JAVA或C#等面向?qū)ο蟾呒?jí)語(yǔ)言,他們聯(lián)系A(chǔ)SP,ASPX和JSP等web系統(tǒng)開(kāi)發(fā),快速開(kāi)發(fā)軟件和web系統(tǒng)方面實(shí)用性非常強(qiáng)。
也建議可以先從C學(xué)起,清華大學(xué)出版社的譚浩強(qiáng)的《C程序設(shè)計(jì)》是一本非常好的適合沒(méi)編程基礎(chǔ),介紹也很徹底詳細(xì)的名書(我就是靠那本書的,呵呵),學(xué)習(xí)C時(shí),不要冒進(jìn),認(rèn)認(rèn)真真打好基礎(chǔ),對(duì)你以后發(fā)展其他語(yǔ)言甚至領(lǐng)域有非常大的幫助。
1.C提供了三種主要的預(yù)處理功能,分別是__宏定義_______、___文件包含______、____條件編譯____。
2.C語(yǔ)言中,數(shù)組元素下標(biāo)下限為_(kāi)__0_____。
3.數(shù)組名作函數(shù)參數(shù)傳遞時(shí)是__數(shù)組首地址______傳遞。變量作函數(shù)參數(shù)時(shí)是_值_______傳遞,
4.一個(gè)編輯好的*.C源程序,必須經(jīng)過(guò)編譯、_連接_______、后才能運(yùn)行。
5.在C語(yǔ)言中可以用__逐個(gè)引用______法和________法引用數(shù)組元素。
6.C語(yǔ)言的程序結(jié)構(gòu)有_順序___、_選擇___、循環(huán)____三種。
7.在C中,Char類型變量值可以賦值給___int_____類型變量。
8.使指針P指向數(shù)組int a[ ]的首址,寫作 __p=a______ ,*(P+1)是a[ _1__ ]的值
9.所謂指針是指_______;指針變量是用于存放_(tái)__變量地址___的變量;字符串的指針是指__字符串的首地址________ ;函數(shù)的指針是指__函數(shù)首地址____________。
10.在函數(shù)調(diào)用中,一個(gè)函數(shù)無(wú)論直接還是間接地調(diào)用自身,該調(diào)用稱為_(kāi)_遞歸_____調(diào)用。
Java技術(shù)Asp.netVB編程Asp編程C++/VCDelphi方案一 Basic語(yǔ)言 & Visual Basic 優(yōu)點(diǎn) (1)Basic 簡(jiǎn)單易學(xué),很容易上手。
(2)Visual Basic 提供了強(qiáng)大的可視化編程能力,可以讓你輕松地做出漂亮的程序。 (3)眾多的控件讓編程變得象壘積木一樣簡(jiǎn)單。
(4)Visual Basic 的全部漢化讓我們這些見(jiàn)了English就頭大的人喜不自禁。 缺點(diǎn) (1)Visual Basic 不是真正的面向?qū)ο蟮拈_(kāi)發(fā)文具。
(2)Visual Basic 的數(shù)據(jù)類型太少,而且不支持指針,這使得它的表達(dá)能力很有限。 (3)Visual Basic 不是真正的編譯型語(yǔ)言,它產(chǎn)生的最終代碼不是可執(zhí)行的,是一種偽代碼。
它需要一個(gè)動(dòng)態(tài)鏈接庫(kù)去解釋執(zhí)行,這使得Visual Basic 的編譯速度大大變慢。 綜述:方案一適合初涉編程的朋友,它對(duì)學(xué)習(xí)者的要求不高,幾乎每個(gè)人都可以在一個(gè)比較短的時(shí)間里學(xué)會(huì)vB編程,并用VB 做出自己的作品。
對(duì)于那些把編程當(dāng)做游戲的朋友來(lái)說(shuō),VB 是您最佳的選擇。 Basic/Visual Basic簡(jiǎn)介 ============================================== 方案二 Pascal語(yǔ)言 & Delphi 優(yōu)點(diǎn) (1)Pascal語(yǔ)言結(jié)構(gòu)嚴(yán)謹(jǐn),可以很好地培養(yǎng)一個(gè)人的編程思想。
(2)Delphi是一門真正的面向?qū)ο蟮拈_(kāi)發(fā)工具,并且是完全的可視化。 (3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執(zhí)行的文件,而且編譯速度非常快。
(4)Delphi具有強(qiáng)大的數(shù)據(jù)庫(kù)開(kāi)發(fā)能力,可以讓你輕松地開(kāi)發(fā)數(shù)據(jù)庫(kù)。 缺點(diǎn) Delphi幾乎可以說(shuō)是完美的,只是Pascal語(yǔ)言的過(guò)于嚴(yán)謹(jǐn)讓人感覺(jué)有點(diǎn)煩。
綜述: 方案二比較適合那些具有一定編程基礎(chǔ)并且學(xué)過(guò)Pascal語(yǔ)言的朋友。 Pascal語(yǔ)言簡(jiǎn)介 Delphi簡(jiǎn)介 ============================================== 方案三 C語(yǔ)言 & Visual C++ 優(yōu)點(diǎn) (1)C語(yǔ)言靈活性好,效率高,可以接觸到軟件開(kāi)發(fā)比較底層的東西。
(2)微軟的MFC庫(kù)博大精深,學(xué)會(huì)它可以讓隨心所欲地進(jìn)行編程。 (3)VC是微軟制作的產(chǎn)品,與操作系統(tǒng)的結(jié)合更加緊密。
缺點(diǎn) 對(duì)使用者的要求比較高,既要具備豐富的C語(yǔ)言編程經(jīng)驗(yàn),又要具有一定的WINDOWS編程基礎(chǔ),它的過(guò)于專業(yè)使得一般的編程愛(ài)好者學(xué)習(xí)起來(lái)會(huì)有不小的困難。 綜述旦酣測(cè)叫爻既詫習(xí)超盧: VC是程序員用的東西。
如果你是一個(gè)永不滿足的人,而且可以在編程上投入很大的精力和時(shí)間,那么學(xué)習(xí)VC你一定不會(huì)后悔的。 C語(yǔ)言簡(jiǎn)介 ============================================== 方案四 C++語(yǔ)言 & C++ Builder 優(yōu)點(diǎn) (1)C++語(yǔ)言的優(yōu)點(diǎn)全部得以繼承。
(2)完全的可是化。 (3)極強(qiáng)的兼容性,支持OWL、VCL和MFC三大類庫(kù)。
(4)編譯速度非常快。 缺點(diǎn) 由于推出的時(shí)間太短,關(guān)于它的各種資料還不太多。
綜述:我認(rèn)為C++ Builder 是最好的編程工具。它既保持了C++語(yǔ)言編程的優(yōu)點(diǎn),又做到了完全的可視化。
C語(yǔ)言簡(jiǎn)介 ============================================== 方案五 SQL語(yǔ)言 & Power Builder 對(duì)于一些傳統(tǒng)的數(shù)據(jù)開(kāi)發(fā)人員來(lái)說(shuō),F(xiàn)oxpro系列也許讓他們感到更加熟悉。但是對(duì)于初學(xué)者來(lái)說(shuō),PowerBuilder也許是最好的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具。
各種各樣的控件,功能強(qiáng)大的PowerBuilder語(yǔ)言都會(huì)幫助你開(kāi)發(fā)出自己的數(shù)據(jù)庫(kù)應(yīng)用程序。 [NextPage] JSP簡(jiǎn)介 在Sun正式發(fā)布JSP(Java Server Pages)之后,這種新的Web應(yīng)用開(kāi)發(fā)技術(shù)很快引起了人們的關(guān)注。
JSP為創(chuàng)建高度動(dòng)態(tài)的Web應(yīng)用提供了一個(gè)獨(dú)特的開(kāi)發(fā)環(huán)境。按照 Sun 的說(shuō)法,JSP能夠適應(yīng)市場(chǎng)上包括Apache WebServer 、IIS4.0在內(nèi)的85%的服務(wù)器產(chǎn)品推薦:編程學(xué)習(xí)網(wǎng)。
c++是面向?qū)ο蟮恼Z(yǔ)言 它完全兼容C語(yǔ)言
它的類型 int double bool float char string
它有 類 對(duì)象
它有 繼承 多態(tài) 封裝
如果你想學(xué)習(xí)c++ 我推薦你這樣學(xué)習(xí)
1.首先是結(jié)構(gòu)化編程,即C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu);
2.然后是面向?qū)ο缶幊?,既C++;
3.然后是掌握STL標(biāo)準(zhǔn)模板庫(kù)的應(yīng)用; 【注意完成在此步驟之前,連入門都不算的?!?/p>
4.然后才是掌握一種開(kāi)發(fā)工具,比如VC++;
5.然后才是逐步學(xué)習(xí)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、界面相關(guān)的內(nèi)容; 【時(shí)候可以寫點(diǎn)應(yīng)用軟件了,算是出師?!?/p>
6.選擇你自己感興趣的一個(gè)方向,深入發(fā)展。 【完成此步驟,你也就算專家了】
這些視頻教程蠻好的
具體請(qǐng)查看
百度百科
搜搜百科
教了多年《C程序設(shè)計(jì)》課程,大多學(xué)生覺(jué)的這門課程難學(xué)。
其實(shí),按照我們現(xiàn)在的教學(xué)大綱和教學(xué)要求,只要同學(xué)們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學(xué)好的。 《C程序設(shè)計(jì)》的內(nèi)容很豐富,按照我們現(xiàn)在的教學(xué)大綱,教學(xué)的主要內(nèi)容是基礎(chǔ)知識(shí)、四種結(jié)構(gòu)的的程序設(shè)計(jì)、函數(shù)與數(shù)組的應(yīng)用和一些簡(jiǎn)單的算法。
在學(xué)習(xí)時(shí),同學(xué)們應(yīng)該把主要精力放在這些部分,通過(guò)實(shí)踐(練習(xí)和上機(jī)調(diào)試等熟練掌握。當(dāng)然,在初學(xué)C語(yǔ)言時(shí),可能會(huì)遇到有些問(wèn)題理解不透,或者表達(dá)方式與以往數(shù)學(xué)學(xué)習(xí)中不同(如運(yùn)算符等),這就要求不氣餒,不明白的地方多問(wèn)多想,鼓足勇氣進(jìn)行學(xué)習(xí),待學(xué)完后面的章節(jié)知識(shí),前面的問(wèn)題也就迎刃而解了,這一方面我感覺(jué)是我們同學(xué)最欠缺,大多學(xué)不好的就是因?yàn)橐婚_(kāi)始遇到困難就放棄,曾經(jīng)和好多同學(xué)談他的問(wèn)題,回答是聽(tīng)不懂、不想聽(tīng)、放棄這樣三個(gè)過(guò)程,我反問(wèn),這節(jié)課你聽(tīng)過(guò)課嗎?回答又是沒(méi)有,根本就沒(méi)聽(tīng)過(guò)課,怎么說(shuō)自己聽(tīng)不懂呢?相應(yīng)的根本就沒(méi)學(xué)習(xí),又談何學(xué)的好? 學(xué)習(xí)C語(yǔ)言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學(xué)習(xí)知識(shí)的重要方法,就是說(shuō),學(xué)習(xí)后面的知識(shí),不要忘了回頭弄清遺留下的問(wèn)題和加深理解前面的知識(shí),這是我們學(xué)生最不易做到的,然而卻又是最重要的。
比如:在C語(yǔ)言中最典型的是關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)構(gòu)思,不管是那種教材,一開(kāi)始就強(qiáng)調(diào)這種方法,這時(shí)也許你不能充分體會(huì),但是學(xué)到函數(shù)時(shí),再回頭來(lái)仔細(xì)體會(huì),溫故知新,理解它就沒(méi)有那么難了。學(xué)習(xí)C語(yǔ)言就是要經(jīng)過(guò)幾個(gè)反復(fù),才能前后貫穿,積累應(yīng)該掌握的C知識(shí)。
那么,我們?nèi)绾螌W(xué)好《C程序設(shè)計(jì)》呢? 一.學(xué)好C語(yǔ)言的運(yùn)算符和運(yùn)算順序 這是學(xué)好《C程序設(shè)計(jì)》的基礎(chǔ),C語(yǔ)言的運(yùn)算非常靈活,功能十分豐富,運(yùn)算種類遠(yuǎn)多于其它程序設(shè)計(jì)語(yǔ)言。在表達(dá)式方面較其它程序語(yǔ)言更為簡(jiǎn)潔,如自加、自減、逗號(hào)運(yùn)算和三目運(yùn)算使表達(dá)式更為簡(jiǎn)單,但初學(xué)者往往會(huì)覺(jué)的這種表達(dá)式難讀,關(guān)鍵原因就是對(duì)運(yùn)算符和運(yùn)算順序理解不透不全。
當(dāng)多種不同運(yùn)算組成一個(gè)運(yùn)算表達(dá)式,即一個(gè)運(yùn)算式中出現(xiàn)多種運(yùn)算符時(shí),運(yùn)算的優(yōu)先順序和結(jié)合規(guī)則顯得十分重要。在學(xué)習(xí)中,只要我們對(duì)此合理進(jìn)行分類,找出它們與我們?cè)跀?shù)學(xué)中所學(xué)到運(yùn)算之間的不同點(diǎn)之后,記住這些運(yùn)算也就不困難了,有些運(yùn)算符在理解后更會(huì)牢記心中,將來(lái)用起來(lái)得心應(yīng)手,而有些可暫時(shí)放棄不記,等用到時(shí)再記不遲。
先要明確運(yùn)算符按優(yōu)先級(jí)不同分類,《C程序設(shè)計(jì)》運(yùn)算符可分為15種優(yōu)先級(jí),從高到低,優(yōu)先級(jí)為1 ~ 15,除第2、3級(jí)和第14級(jí)為從右至左結(jié)合外,其它都是從左至右結(jié)合,它決定同級(jí)運(yùn)算符的運(yùn)算順序。下面我們通過(guò)幾個(gè)例子來(lái)說(shuō)明: (1) 5*8/4%10 這個(gè)表達(dá)式中出現(xiàn)3種運(yùn)算符,是同級(jí)運(yùn)算符,運(yùn)算順序按從左至右結(jié)合,因此先計(jì)算5 *8=40,然后被4除,結(jié)果為10,最后是%(求余數(shù))運(yùn)算,所以表達(dá)式的最終結(jié)果為10%10 = 0; (2)a = 3;b = 5;c =++ a* b ;d =a + +* b; 對(duì)于c=++a*b來(lái)說(shuō),按表中所列順序,+ +先執(zhí)行,*后執(zhí)行,所以+ + a執(zhí)行后,a的值為4,由于+ +為前置運(yùn)算,所以a的值4參與運(yùn)算,C的值計(jì)算式為4*5=20而不是3*5=15了;而對(duì)于d=a++*b來(lái)說(shuō),由于a + +為后置運(yùn)算,所以a值為4參與運(yùn)算,使得d的值仍為20,而a參與運(yùn)算后其值加1,值為5。
這個(gè)例子執(zhí)行后,a的值為5,b的值為5,c的值為20,d的值也是20; (3)(a = 3,b = 5,b+ = a,c = b* 5) 例子中的“,”是逗號(hào)結(jié)合運(yùn)算,上式稱為逗號(hào)表達(dá)式,自左向右結(jié)合,最后一個(gè)表達(dá)式的結(jié)果值就是逗號(hào)表達(dá)式的結(jié)果,所以上面的逗號(hào)表達(dá)式結(jié)果為40,a的值為3,b的值為8,c的值為40。 (4)a=5;b=6;c=a>b?a:b; 例中的a>b?a:b是一個(gè)三目運(yùn)算,它的功能是先做關(guān)系運(yùn)算a>b部分,若結(jié)果為真,則取問(wèn)號(hào)后a的值,否則取冒號(hào)后b的值,因此c的值應(yīng)該為6,這個(gè)運(yùn)算可以用來(lái)代替if…else…語(yǔ)句的簡(jiǎn)單應(yīng)用。
二.學(xué)好C語(yǔ)言的四種程序結(jié)構(gòu) (1)順序結(jié)構(gòu) 順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡(jiǎn)單的,只要按照解決問(wèn)題的順序?qū)懗鱿鄳?yīng)的語(yǔ)句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。 例如;a = 3,b = 5,現(xiàn)交換a,b的值,這個(gè)問(wèn)題就好象交換兩個(gè)杯子水,這當(dāng)然要用到第三個(gè)杯子,假如第三個(gè)杯子是c,那么正確的程序?yàn)椋?c = a; a = b; b = c; 執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執(zhí)行結(jié)果就變成a = b = c = 5,不能達(dá)到預(yù)期的目的,初學(xué)者最容易犯這種錯(cuò)誤。
順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡(jiǎn)單的完整程序,常見(jiàn)的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu),例如計(jì)算圓的面積,其程序的語(yǔ)句順序就是輸入圓的半徑r,計(jì)算s = 3.14159*r*r,輸出圓的面積s。不過(guò)大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個(gè)復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語(yǔ)句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。
(2) 分支結(jié)構(gòu) 順序結(jié)構(gòu)的程序雖然能解決計(jì)算、輸出等問(wèn)題,但不能做判斷再選擇。對(duì)于要先做判斷再選擇的問(wèn)題就要使用分支結(jié)構(gòu)。
分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。分支結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)。
面向?qū)ο笕筇匦裕悍庋b,繼承,多態(tài) 面向?qū)ο螅∣bject Oriented,縮寫為OO)是現(xiàn)代軟件技術(shù)的精髓。
從早期的SmallTalk到如日中天的Java,都滲透著面向?qū)ο笏枷?。OO具有三大特性:封裝性、繼承性和多態(tài)性。
想掌握面向?qū)ο笏枷耄捅仨毶钊肜斫?其三大特性。這里我盡量少談概念,只用一個(gè)生活中的例子和一段代碼來(lái)解釋它們。
1、封裝性(Encapsulation) 所謂封裝,就是將某些東西包裝和隱藏起來(lái),讓外界無(wú)法直接使用,只能通過(guò)某些特定的方式才能訪問(wèn)。OO將萬(wàn)物都視為“對(duì)象”(Object),任何對(duì)象都具有特性和行為。
我們將其特性稱為“成員變量” (MemberVarible),將其行為稱之為“成員函數(shù)"(Member Function),被封裝的特性只能通過(guò)特定的行為去訪問(wèn)。 大家都見(jiàn)過(guò)旅館里常用的一種茶葉吧,就是用紙袋把茶葉包裝起來(lái)再系是一根線。
用的時(shí)候只需要將其放在水杯里泡就行。這樣的好處是不會(huì)將茶葉渣和茶垢弄的滿杯子都是。
好!這就是一個(gè)封裝的例子。 我們喝茶的目的是享受茶葉的香冽;所以茶葉的味道(Flavour)就是茶葉所具有的最 重要特性之一;可是我們無(wú)法直接享受它的清香,因?yàn)楸煌饷娴募埓胺庋b”起來(lái)了。
唯一的辦法就是“泡”(Dilute),將茶袋扔在開(kāi)水中泡,它的味道就出來(lái)了,融入水中。 如果我們把袋裝茶葉看作一個(gè)對(duì)象的話,它提供了成員變量Flavour和成員函數(shù)Dilute 。
并且Flavour是私有(Private)的,我們不能直接把它吞進(jìn)肚子去,而只能通過(guò)成員函 數(shù)Dilute才能享受Flavour。 下面用C++代碼來(lái)描述這個(gè)例子: Class CTea { Private: Cstring m_Flavour; //味道 Cstring m_Color; //顏色 。
//等等其它屬性 Private: Void CTea(); //構(gòu)造函數(shù) Void ~CTea(); //析構(gòu)函數(shù) Public: Cstring Dilute();//沏茶 。
//等等其它方法 } Cstring CTea::Dilute() { //怎樣泡出味道來(lái)的代碼 } 這就是封裝。
通過(guò)將對(duì)象的某些屬性聲明為Private隱藏起來(lái),只能使用其提供的特定 方法去訪問(wèn)。 2、繼承(Inheritance) 如果只是封裝,那么非面向?qū)ο笳Z(yǔ)言也能部分的做到。
比如在C中,用結(jié)構(gòu)(Struct)、VB中用自定義類型(Type)也能封裝一些變量。 OO最有吸引力的特性是繼承。
通俗的說(shuō)后代具有祖先的某些特點(diǎn)就叫繼承,當(dāng)然后代還可以具有自己獨(dú)有的特征。舉個(gè)例子吧,菜刀。
菜刀(cutlery)是鋼(Steel)做的,鋼是一種金屬(Metal),金屬則是大千世界里的一種物質(zhì)(Substance)。所以菜刀的一些特性可以追溯到物質(zhì)具有的一般屬性。
正是因?yàn)檫@個(gè)道理,MFC中所有類均從CObject繼承而來(lái)。 這就是繼承。
菜刀直接繼承了鋼的特性,鋼又繼承了金屬的特性,。
下面的代碼描 述了這種復(fù)雜而有獨(dú)特的繼承關(guān)系: Class CSubstance { Private: int m_color; void CSubstance(); void ~CSubstance(); //。
(我是學(xué)文科的,具體屬性說(shuō)不上來(lái)) } Class CMetal:Public CSubstance { void CMetal(); void ~CMetal(); //。
} Class CSteel:Public CMetal { void CSteel(); void ~CSteel(); //。
} Class CCutlery:Public CSteel { private: Cstring m_Blade; void CCutlery(); void ~CCutlery(); //。
Public: void Cut(); } 這里,CSubstance被稱為基類(Base class),其它被稱為衍生類(Derived class)。衍生類與基類是“Is kind of”的關(guān)系。
子類與其祖先類之間復(fù)雜的函數(shù)調(diào)用關(guān)系不在本文討論之列。 繼承是一種樹(shù)狀的層次關(guān)系。
子類在繼承祖先類的成員變量和成員函數(shù)的同時(shí)也可以 定義自己的成員變量和成員函數(shù)。比如,Metal 除了繼承了Substance的一般特性外,還具有自己的屬性諸如可延展性;CCutlery在繼承CSteel的特性后還具有自己的成員諸如“刀刃”(Blade)、“鋒利”(Sharpness)、行為有如“切”(Cut)等。
面向?qū)ο蠹夹g(shù)是對(duì)現(xiàn)實(shí)生活的抽象,你可以用生活中的經(jīng)驗(yàn)去思考程序設(shè)計(jì)的邏輯。 3、多態(tài)性(Polymorphism) 討論多態(tài)之前先要明白什么是“虛擬”(Virtual)。
C++/MFC就是用虛擬這種方式實(shí)現(xiàn)多態(tài)的。為什么“虛擬”這個(gè)概念?看下邊的例子: Class Cincect //昆蟲(chóng)類 { private: int m_foot; //腳的數(shù)量 。
//其它成員變量 private: void Cincect(); void ~Cincect(); public: void Bite()//咬人 { 。
//怎樣咬人的代碼,比如張開(kāi)嘴啃 } } 我把Bite(咬)這個(gè)動(dòng)作在基類中定義為一般化動(dòng)作。
可是,不是所有昆蟲(chóng)咬 人的方法都一樣(況且還有的根本就不咬人呢,比如蜻蜓),比如蚊子是用嘴那個(gè) 吸管叮人而螞蟻是用嘴去夾。 從昆蟲(chóng)這個(gè)類別衍生出以下兩個(gè)類別:Cant(螞蟻)、Cmosquito(蚊子)。
class Cant :public Cincect //螞蟻類 { 。
} class Cmosquito :public Cincect //蚊子類 { 。
} 它們都繼承了Cincect的所有成員,當(dāng)然也繼承了Bite()這個(gè)動(dòng)作?,F(xiàn)在就有問(wèn)題了: 同樣繼承自昆蟲(chóng),當(dāng)我們使用Bite()這個(gè)動(dòng)作時(shí)怎么才能區(qū)分螞蟻和蚊子各自的獨(dú)有的咬人方式呢? 方法之一是用“::”符號(hào)指明具體引用的是那一個(gè),但這樣明顯失去了靈活性; 另一種方法就是“虛擬”。
使用關(guān)鍵字virtual將Bite()聲明為虛擬函數(shù),然后在每個(gè) 衍生類中重新定義,描述它們各自的咬人方法,調(diào)用的時(shí)。
c++是面向?qū)ο蟮恼Z(yǔ)言 它完全兼容C語(yǔ)言 它的類型 int double bool float char string 它有 類 對(duì)象 它有 繼承 多態(tài) 封裝 如果你想學(xué)習(xí)c++ 我推薦你這樣學(xué)習(xí) 1.首先是結(jié)構(gòu)化編程,即C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu); 2.然后是面向?qū)ο缶幊蹋菴++; 3.然后是掌握STL標(biāo)準(zhǔn)模板庫(kù)的應(yīng)用; 【注意完成在此步驟之前,連入門都不算的?!?/p>
4.然后才是掌握一種開(kāi)發(fā)工具,比如VC++; 5.然后才是逐步學(xué)習(xí)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、界面相關(guān)的內(nèi)容; 【時(shí)候可以寫點(diǎn)應(yīng)用軟件了,算是出師?!?6.選擇你自己感興趣的一個(gè)方向,深入發(fā)展。
【完成此步驟,你也就算專家了】 這些視頻教程蠻好的 /playlist/id/2437800 .cn/eschool/video/c++/ 具體請(qǐng)查看 百度百科 /view/118570.htm 搜搜百科 /ShowLemma.e?sp=l51909&ch=w.search.baike.unelite。
1。
static變量時(shí)為了限定一個(gè)范圍,使其他文件不能訪問(wèn)它,再者就是它賦值之后,以后每次調(diào)用它都是上一次的值。直到程序結(jié)束。
const常量則是要求他所定義的量不能改變。2。
虛函數(shù)的目的是為了實(shí)現(xiàn)多態(tài)性。父類的方法定義為虛函數(shù),子類繼承時(shí)自動(dòng)定義為虛函數(shù),如果子類對(duì)象調(diào)用該虛函數(shù),則自動(dòng)調(diào)用子類的虛函數(shù),關(guān)鍵點(diǎn)在于,你用new定義一個(gè)子對(duì)象時(shí)把返回值給父類指針,再用這個(gè)父類指針去調(diào)用子類虛函數(shù)時(shí)它也自動(dòng)去調(diào)用子類的虛函數(shù)而不是父類的。
具體原因在于虛函數(shù)列表。這個(gè)可以以后再仔細(xì)看看。
3。棧是一種數(shù)據(jù)結(jié)構(gòu),就是你怎么放數(shù)據(jù),數(shù)據(jù)怎么安排。
在棧中是像把數(shù)據(jù)讓進(jìn)一個(gè)有底的杯子里似的,出來(lái)的順序和進(jìn)去的順序正好相反。最后進(jìn)去的必須最先出來(lái)。
要不里邊的出不來(lái)。4。
復(fù)數(shù),就是有實(shí)部和虛部的數(shù)。其實(shí)就是你把y軸看成虛軸,x軸是實(shí)軸就行了。
其他運(yùn)算方面就是用的勾股定理。例如:a=3+4i。
實(shí)部是3,虛部是4i。a長(zhǎng)度為55。
當(dāng)你想把一個(gè)運(yùn)算符變成具有你所定義的功能的時(shí)候用重載運(yùn)算符。比方說(shuō)你想讓字符串可以直接加,那你就可以在字符串類里定義一個(gè)函數(shù),重載加號(hào)。
函數(shù)的重載是當(dāng)使用好幾個(gè)類似的函數(shù)方法(函數(shù)名相同),其中只是參數(shù)類型或個(gè)數(shù)不同時(shí),就可以重載該函數(shù)。實(shí)現(xiàn)函數(shù)的多態(tài)性。
而不必定義好幾個(gè)函數(shù)名。6。
這個(gè)題目中A應(yīng)該是B的父類才能這樣賦值。對(duì)象是一個(gè)數(shù)據(jù)結(jié)構(gòu),就像一個(gè)結(jié)構(gòu)體。
它是一個(gè)數(shù)據(jù)塊。當(dāng)然就有一個(gè)地址。
類似于數(shù)組名是數(shù)組首地址。對(duì)象名也代表對(duì)象這個(gè)數(shù)據(jù)塊的首地址。
所以可以賦值給一個(gè)指針,而這個(gè)指針必須是本對(duì)象或者父對(duì)象類型。7。
要引用的volatile time_t clock常量在本文件的外部定義,即通知本文件該常量在其他文件中定義了。本文件中用到了,就去那個(gè)文件中去找它的定義。
8。這個(gè)不解釋,具體太多。
你可以看看孫鑫vc++視頻。9。
不用裝,vc6.0里就有。mfc是用面向?qū)ο蟮募夹g(shù)對(duì)api進(jìn)行了包裝,利用mfc提供的類可以管理窗口,菜單,對(duì)話框。
執(zhí)行基本輸入輸出等功能。請(qǐng)采納答案,支持我一下。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:3.497秒