❶ c語言是面向過程的,C++是面向對象的。這其中的過程,對象到底是什麼含義不理解!!求高手解答
你好HI雷鋒
「面向過程」是一種以事件為中心的編程思想。
就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
「面向對象」是一種以事物為中心的編程思想。
比如以公共汽車而言。
「面向過程」就是汽車啟動是一個事件,汽車到站是另一個事件。在編程序的時候我們關心的是某一個事件。而不是汽車本身。我們分別對啟動和到站編寫程序。類似的還有修理等等。
到了編程就是:
public class 運營
{
void 汽車啟動
{
}
void 汽車到站
{
}
}
「面向對象」需要建立一個汽車的實體,由實體引發事件。我們關心的是由汽車抽象成的對象,這個對象有自己的屬性,象輪胎,顏色等;有自己的方法,象啟動,行駛等.方法也就是汽車的行為.而不是汽車的每個事件。
public class 汽車
{
void 到站()
{
}
void 啟動()
{
}
}
使用的時候需要建立一個汽車對象,然後進行應用。
面向過程其實是最為實際的一種思考方式,就是算面向對象的方法也是含有面向過程的思想.可以說面向過程是一種基礎的方法.它考慮的是實際的實現.一般的面向過程是從上往下步步求精.所以面向過程最重要的是模塊化的思想方法.對比較面向對象,面向對象的方法主要是把事物給對象化,對象包括屬性與行為.當程序規模不是很大時,面向過程的方法還會體現出一種優勢,因為程序的流程很清楚,按著模塊與函數的方法可以很好的組織.比如拿學生早上起來的事情來說說這種面向過程吧.粗略的可以將過程擬為:
(1)起床
(2)穿衣
(3)洗臉刷牙
(4)去學校
而這4步就是一步一步的完成,它的順序很重要,你只須一個一個的實現就行了.而如果是用面向對象的方法的話,可能就只抽象出一個學生的類,它包括這四個方法,但是具體的順序就不能體現出來.
希望對你有所幫助!謝謝!
❷ C語言面向對象的語法框架是什麼
c是結構化的,c++才是面向對象的,要弄明白面向對象的概念,就必須理解和掌握類的概念和用法,類的構造、繼承,多態這些,理解和熟練運用類,對以後快速學會java和python這些語言也會有非常大的幫助。
❸ C語言 面向對象語言
1.設計對象:就是要搞清楚對角包含的數據(屬性),如學生對象可能包含學號、姓名、性別、成績等信息。還要搞清楚對該對象的數據進行的操作有哪些,如:設置類操作Set...(設置姓名、設置信息等),取得類操作Get...(取得姓名、取得成績等),還有顯示以象操作等。清楚了對象的屬性與操作後,就可以按類(像C中結構體)的設計原則,設計對象類了,如:
class CStudent
{
public:
void SetName(char *name);
void SetScore(int score);
char *GetName();
int GetScore();
int PrintInfo();
...
private:
int xh;
char name[20];
char sex[3];
int score;
...
};
CStudent a[30]; //定義存儲30個學生的信息
(2)通知對象完成任務,主要靠「消息」來實現的,具體來講,消息可以理解為以象的public類的函數(如SetName函數),只有public類的屬性,對象類的外部函數或對象才能直接使用。
如果設置學生i對象的姓名和成績,可以在函數中把水消息傳遞a[i]對角,傳遞的方法如下:
a[i].SetName("zhangshan");
a[i].SetScore(80);
等。
對象a[i]收到SetName的消息後,把name賦值為zhangshan,把score賦值為80了。
不知這樣解釋,你能明明白嗎?實際上
面向對象編程就是:
對象+對象+對象
而結構化編程是:
數據結構+演算法
兩種思想的區別是,前者把「數據結構」和「演算法」捆綁為「對象類」,後者數據結構與演算法是分離的,當數據結構發生變化時,演算法必須跟著改變,否則不能正常工作。
❹ 歷史上,c語言調用函數的思想是怎麼想出來的,後來對象化又是怎麼一回事
C還沒有影子的時候,高級語言BASIC就有GOSUB調用子程序語句,這實際上就是調用一個比較完整的功能模塊,而C語言的函數一詞正是從function(功能,函數)翻譯過來的;高級語言還連影子都沒有的時候,匯編語言就有一系列跳轉和返回指令,就已經具備了跳出主程序流程完成某種功能後返回主流程繼續執行的操作。所以在下認為函數調用操作並不是C的發明創造,在C的研發一開始,這種思想已經很成熟了(在CPU的研發指令安排中已經具備了這種思想),只是C把程序結構完全函數化了。再說,C的初衷是替代匯編語言的,匯編語言已經具備了這種思想,C沒有這種功能就很難達到初衷了。後來互相影響,一些高級語言也都模塊化升級,像BASIC的子程序調用已經與C的不差上下了。個人管見,只供參考。
❺ 在C語言中,什麼叫做面向對象,什麼叫做面向過程
面向對象和面向過程都是編程思想,分別以對象和過程為主要目標進行編程。
1、面向對象:面向對象(ObjectOriented)是一種軟體開發方法。ObjectOriented的概念和應用已經超越了編程和軟體開發。面向對象是一種理解和抽象現實世界的方法。它是計算機編程技術發展的產物。
2、面向過程:面向過程(Procere Oriented)是一種以過程為中心的編程思想。面向過程都是以正在發生的過程為主要目標進行編程,與面向對象明顯的不同就是封裝、繼承、類。
(5)c語言對象化擴展閱讀:
面向對象和面向過程的區別:
1、分析問題方式的不同:
面向過程是分析解決問題所需的步驟,然後使用函數逐步實現這些步驟,使用時一個接一個。
面向對象是將問題事務分解為各種對象。對象的建立不是為了完成一個步驟,而是為了描述一個事物在解決問題的整個過程中的行為。
2、解決問題的方法的不同:
面向過程其實是最為實際的一種思考方式,就算是面向對象的方法也是含有面向過程的思想。可以說面向過程是一種基礎的方法。它考慮的是實際地實現。一般的面向過程是從上往下步步求精,所以面向過程最重要的是模塊化的思想方法。
對比面向過程,面向對象的方法主要是把事物給對象化,對象包括屬性與行為。當程序規模不是很大時,面向過程的方法還會體現出一種優勢。
參考資料來源:網路-面向對象
參考資料來源:網路-面向過程
❻ C語言中的對象是什麼
對象在C語言中廣義上指的是在內存中的一段有意義的區域。狹義上講,對象具有特定長度的類型,可以稱作為對象類型,但其函數不具有特定長度,所以不是對象類型。
面向對象(Object Oriented,OO)是當前計算機界關心的重點,它是90年代軟體開發方法的主流。面向對象的概念和應用已超越了程序設計和軟體開發,擴展到很寬的范圍。如資料庫系統、互動式界面、應用結構、應用平台、分布式系統、網路管理結構、CAD技術、人工智慧等領域。
(6)c語言對象化擴展閱讀:
C語言軟體設計時經常使用面向對象的方法:
面向對象技術在不同級別上促進了共享。同一類中的共享,同一類中的對象有著相同數據結構。這些對象之間是結構、行為特徵的共享關系。
在同一應用中共享。在同一應用的類層次結構中,存在繼承關系的各相似子類中,存在數據結構和行為的繼承,使各相似子類共享共同的結構和行為。使用繼承來實現代碼的共享,這也是面向對象的主要優點之一。
在不同應用中共享。面向對象不僅允許在同一應用中共享信息,而且為未來目標的可重用設計准備了條件。通過類庫這種機制和結構來實現不同應用中的信息共享。
參考資料來源:網路-對象
❼ C語言的過程化和C++的對象化怎麼理解C,C++,C#的區別聯系
面向對象的三大特性是封裝,繼承和多態。這三個都非常有用,封裝,你可以講很多與某一個對象相關的操作或成員封裝成一個類,通過這個類來調用這些對象或成員。繼承,就是子類可以繼承父類的函數或成員,對於後續開發非常有用。多態,就是允許你用一個基類指針來指向子類對象,然後調用基類的函數(必須先聲明為虛函數)時,會自動去執行子類的行為(個人認為,這是C++得精髓),因為你可以講所有子類的對象保存起來,然後循環調用同一個函數,結果會有不同的行為(取決於你是否重載了該虛函數)。C++絕對比C好,但學C++前最好先學C,因為C相對容易點。C++的對象和C的結構類似,但功能更強大。C#,面向對象比C++更強烈點,但運行效率會更低點,不過據說開發效率會更高,因為提供了更多的介面。而且C#可以用在網站開發商,C++不可以。
❽ C#對象初始化問題(可否像C語言的結構一樣
include <iostream>
#include <stdio.h>
int jc(int m){
if(m!=1) return m*jc(m-1);
else return 1;
}
int c(int m,int n){
if(m>=n) return jc(m)/(jc(n)*jc(m-n));
}
int main(void){
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",c(m,n));
return 0;
}
❾ C語言的發展及其特點
C 語言特點
C語言是一種成功的系統描述語言,用C語言開發的UNIX操作系統就是一個成功的範例;同時C語言又是一種通用的程序設計語言,在國際上廣泛流行。世界上很多著名的計算公司都成功的開發了不同版本的C語言,很多優秀的應用程序也都使用C語言開發的,它是一種很有發展前途的高級程序設計語言。 1. C是中級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。 2.C是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。 3.C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。 c語言
4. C語言適用范圍大。適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。 C語言對編寫需要硬體進行操作的場合,明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。 C語言具有較好的可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。 常用的C語言IDE(集成開發環境)有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc 等等…… c語言的學習 對於一個初學者,Microsoft Visual C++是一個比較好的軟體。界面友好,功能強大,調試也很方便。這是微軟出的一個C語言集成開發環境(IDE),主要有:VC++6.0、VS2005、VS2008、VS2010等,分為企業版和學生版等。對於初學者VC++6.0是比較容易上手的,但由於其對標准支持的不好可能使人養成不良編程習慣,因此論壇上也有人主張舍棄VC++6.0。 在unix/linux操作系統上,學習c語言一般使用vim/emacx來編輯源文件,使用gcc/cc來編譯源文件,使用make程序來管理編譯過程。
編輯本段發展歷史
c語言
C語言的祖先是BCPL語言。 1967年,劍橋大學的Martin Richards 對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Pogramming Language)語言。 1970年,美國貝爾實驗室的Ken Thompson。以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。 在1972年,美國貝爾實驗室的D.M.Ritchie在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。 為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。 1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchie合著 c語言程序設計
了著名的《The C Programming Language》一書。通常簡稱為《K&R》,也有人稱之為《K&R》標准。但是,在《K&R》中並沒有定義一個完整的標准C語言,後來由美國國家標准化協會(American National Standards Institute)在此基礎上制定了一個C語言標准,於一九八三年發表。通常稱之為ANSI C。 K&R第一版在很多語言細節上也不夠精確,對於pcc這個「參照編譯器」來說,它日益顯得不切實際;K&R甚至沒有很好表達它所要描述的語言,把後續擴展扔到了一邊。最後,C在早期項目中的使用受商業和政府合同支配,它意味著一個認可的正式標準是重要的。因此(在M. D. McIlroy的催促下),ANSI於1983年夏天,在CBEMA的領導下建立了X3J11委員會,目的是產生一個C標准。X3J11在1989年末提出了一個他們的報告[ANSI 89],後來這個標准被ISO接受為ISO/IEC 9899-1990。 1990年,國際標准化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標准(ISO9899-1990)。1994年,ISO修訂了C語言的標准。 1995年,ISO對C90做了一些修訂,即「1995基準增補1(ISO/IEC/9899/AMD1:1995)」。1999年,ISO有對C語言標准進行修訂,在基本保留原來C語言特徵的基礎上,針對應該的需要,增加了一些功能,尤其是對C++中的一些功能,命名為ISO/IEC9899:1999。 2001年和2004年先後進行了兩次技術修正。 目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則有略有差別。