當前位置:首頁 » 編程語言 » c語言中對象與類的定義
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中對象與類的定義

發布時間: 2022-04-19 21:11:22

❶ C 中什麼是類

類是 面向對象程序設計語言中的一個概念。
程序設計中類的含義

[一個簡單的類圖]

一個簡單的類圖
類(Class)實際上是對某種類型的對象定義變數和方法的原型。它表示對現實生活中一類具有共同特徵的事物的抽象,是面向對象編程的基礎。
類是對某個對象的定義。它包含有關對象動作方式的信息,包括它的名稱、方法、屬性和事件。實際上它本身並不是對象,因為它不存在於內存中。當引用類的代碼運行時,類的一個新的實例,即對象,就在內存中創建了。雖然只有一個類,但能從這個類在內存中創建多個相同類型的對象。
可以把類看作「理論上」的對象,也就是說,它為對象提供藍圖,但在內存中並不存在。從這個藍圖可以創建任何數量的對象。從類創建的所有對象都有相同的成員:屬性、方法和事件。但是,每個對象都象一個獨立的實體一樣動作。例如,一個對象的屬性可以設置成與同類型的其他對象不同的值。
類定義的一般形式
class Name {
public:
類的公有介面
[MFC類圖]

MFC類圖
private:
私有的成員函數
私有的數據成員定義
};
類的定義由 類頭 和 類體 兩部分組成。類頭由關鍵字 Class 開頭,然後是類名,其命名規則與一般標識符的命名規則一致。類體包括所有的細節,並放在一對花括弧中。類的定義也是一個語句,所以要有分號結尾,否則會產生編譯錯誤。
類體定義類的成員,它支持兩種類型的成員:
(1)數據成員,它們指定了該類對象的內部表示。
(2)成員函數,他們指定了該類的操作。
類成員有3種不同的訪問許可權:
(1)公有( public )成員可以在類外訪問。
(2)私有( private )成員只能被該類的成員函數訪問。
(3)保護( protected )成員只能被該類的成員函數或派生類的成員函數訪問。
數據成員通常是私有的,成員函數通常有一部分是公有的,一部分是私有的。公有的函數可以在類外被訪問,也稱之為類的介面。可以為各個數據成員和成員函數指定合適的訪問許可權。
Microsoft Visual Basic for Applications (VBA) 工程中可包含兩種不同類型的類模塊:沒有任何一種與其關聯的用戶界面的基本類模塊;與窗體或其它組件關聯的類模塊。例如,與窗體相關聯的類模塊,它們和基本類模塊相同,只是它們只有在那個窗體存在於內存中時,才存在於內存中。擁有相關聯的類模塊的對象的示例是「用戶窗體」、Microsoft Access 窗體和報表、Microsoft Word 的 ThisDocument 對象,Microsoft Excel 的 ThisWorkbook 和 SheetN 對象。

❷ Java里「類」和「對象」定義分別是什麼我學過c語言,可以用裡面的東西解釋。

對象是類的實體
比如你大腦中的汽車 這只是個概念,這個概念相當於類
而真正的一輛桑塔納汽車就是一個對象 是車這個概念的實體

不知道你打不打游戲,比如游戲里所說的某個兵種就是類,造出來的兵就是對象,類只是具有某些共性的實體所總結出的概念。

C語言中的struct(結構體)的概念就類似於JAVA的類

❸ c++類與對象

C++類的定義:
類是定義同一類所有對象的變數和方法的藍圖或原型。
類也可以定義類變數和類方法。可以從類的實例中或者直接從類中訪問類變數和方法。類方法只能操作類變數,不必訪問實例變數或實例方法。系統在第一次在程序中遇到一個類時為這個類建立它的所有類變數的拷貝,這個類的所有實例共享它的類變數。

C++對象的定義:
定義一個類就相當於創建了一個新的class類型。要使用類,還必須用已經定義的類去說明它的實例變數(即對象)。在C++中,class類型一旦被定義,它的實例變數(對象)就能被創建,並初始化,且能定義指針變數指向它。實例化的類就是對象。

類和對象其實是C語言里的結構體的延伸,在C++里,struct 和 class其實本質上是一樣的,唯一區別就是struct默認是公開的,class默認是私有的,公開時需要聲明為public;還有就是C語言里的結構體,不能包含函數和繼承,C++可以包含函數以及繼承其他的類。

❹ c++中的類和類的對象是什麼意思

類是把函數和一些成員數據放在一起,類似於結構體struct。
聲明格式是 class+類名 { 數據成員 +成員函數 } 。 class 是必須的關鍵詞。
對象就是把 「類」 實例化 ,也類似於結構體變數的聲明,它的創建格式是 類名+對象名,比如有一個已經定義的類 A ,可以這樣把A實例化 A a ; a就是你創建的對象。只有創建了對象,類才能發揮作用。

❺ C語言中定義數據對象或類型的關鍵字是什麼

typedef 類型名 替換的類型名;
class 定義一個類。
struct 定義一個結構。

❻ c語言描述類 對象 方法 屬性四者之間區別與聯系

對象是人們要進行研究的任何事物,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。具有相同或相似性質的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例化,ASP中set
classname=new
classd()
就是實例化一個類;
對象有它的屬性和方法,舉例說明,人是一個對象,人的長相和身材就是對象的屬性,而說話動作就是對象的方法。
對象的屬性也可能是一組集合,舉例說明:人這個對象的外表屬性包含:長相,身高,體形,氣質等。

❼ c++中類和對象的關系

C++中的類(Class)可以看做C語言中結構體(Struct)的升級版。結構體是一種構造類型,可以包含若干成員變數,每個成員變數的類型可以不同;可以通過結構體來定義結構體變數,每個變數擁有相同的性質。

類是把函數和一些成員數據放在一起,類似於結構體struct。

聲明格式是 class+類名{ 數據成員 +成員函數 } class 是必須的關鍵詞

對象就是把 「類」 實例化 ,也類似於結構體變數的聲明,它的創建格式是 類名+對象名,比如有一個已經定義的類 A ,可以這樣把A實例化 A a ; a就是你創建的對象。只有創建了對象,類才能發揮作用。

(7)c語言中對象與類的定義擴展閱讀:

類是現實世界或思維世界中的實體在計算機中的反映,它將數據以及這些數據上的操作封裝在一起。對象是具有類類型的變數。類和對象是面向對象編程技術中的最基本的概念。

類是對象的抽象,而對象是類的具體實例。類是抽象的,不佔用內存,而對象是具體的,佔用存儲空間。類是用於創建對象的藍圖,它是一個定義包括在特定類型的對象中的方法和變數的軟體模板。

❽ c++的類和對象

類是具有相同屬性和相同的方法的對象的集合,它是一種既包含數據又包含函數的抽象數據類型。
對象是類進行實體化後的產物,是一個實體。
在C++中也是先聲明一個類類型,然後用它去定義若干個同類型的對象。對象就是類類型的一個變數。可以說類是對象的模板,是用來定義對象的一種抽象類型。類是抽象的,不佔用內存,而對象是具體的,佔用存儲空間。 類是用戶自己指定的類型。如果程序中要用到類類型,必須自己根據需要進行聲明,或者使用別人已設計好的類。C++標准本身並不提供現成的類的名稱、結構和內容。
在C++中聲明一個類的類型和聲明一個結構體類型是相似的。下面是聲明一個結構體類型的方法: structStudent//聲明了一個名為Student的結構體類型{intnum;charname[20];charsex;};Studentstud1,stud2;//定義了兩個結構體變數stud1和stud2,它只包括數據,沒有包括操作聲明一個類: classStudent//以class開頭{intnum;charname[20];charsex;//以上3行是數據成員voiddisplay()//這是成員函數{cout<<″num:″<<num<<endl;cout<<″name:″<<name<<endl;cout<<″sex:″<<sex<<endl;};//以上4行是函數中的操作語句};Studentstud,stud1;//定義了兩個對象stud和stud1事實上,也可以用struct關鍵字來聲明一個類。這樣的類中默認所有成員的許可權都是public(除非你特別寫上許可權),而用class聲明的類中默認所有成員的許可權都是private.
可以看到聲明類的方法是由聲明結構體類型的方法發展而來的,類就是對象的類型。實際上,類是一種廣義的數據類型。類這種數據類型中的數據既包含數據,也包含操作數據的函數。
不能把類中的全部成員與外界隔離,一般是把數據隱蔽起來,而把成員函數作為對外界的介面。可以將上面類的聲明改為 classStudent//以class開頭{private://聲明私有成員intnum;charname[20];charsex;public://聲明公共成員voiddisplay(){cout<<″num:″<<num<<endl;cout<<″name:″<<name<<endl;cout<<″sex:″<<sex<<endl;}};Studentstud1,stud2;//定義了兩個對象stud1和stud2如果在類的定義中既不指定private,也不指定public,則系統就默認為是私有的。歸納以上對類類型的聲明,可得到其一般形式如下: class類名{private://私有的數據和成員函數;public://公用的數據和成員函數;};private和public稱為成員訪問限定符(member access specifier)。除了private和public之外,還有一種成員訪問限定符protected(受保護的),用protected聲明的成員稱為受保護的成員,它不能被類外訪問(這點與私有成員類似),但可以被派生類的成員函數訪問。
在聲明類類型時,聲明為private的成員和聲明為public的成員的次序任意,既可以先出現private部分,也可以先出現public部分。
在一個類體中,關鍵字private和public可以分別出現多次。每個部分的有效范圍到出現另一個訪問限定符或類體結束時(最後一個右花括弧)為止。但是為了使程序清晰,應該養成這樣的習慣: 使每一種成員訪問限定符在類定義體中只出現一次。
C++ 程序多數先寫public部分,把private部分放在類體的後部。這樣可以使用戶將注意力集中在能被外界調用的成員上,使閱讀者的思路更清晰一些。
在C++程序中,經常可以看到類。為了用戶方便,常用的C++編譯系統往往向用戶提供類庫(但不屬於C++語言的組成部分),內裝常用的基本的類,供用戶使用。不少用戶也把自己或本單位經常用到的類放在一個專門的類庫中,需要用時直接調用,這樣就減少了程序設計的工作量。 上述程序段中,最後一行用已聲明的Student類來定義對象,這種方法是很容易理解的。經過定義後,stud1和stud2就成為具有Student類特徵的對象。stud1和stud2這兩個對象都分別包括Student類中定義的數據和函數。
定義對象也可以有以下幾種方法:
1.先聲明類類型,然後再定義對象前面用的就是這種方法,如Student stud1,stud2;//Student是已經聲明的類類型在C++中,聲明了類類型後,定義對象有兩種形式。
(1)class 類名 對象名
如: class Student stud1,stud2;
把class和Student合起來作為一個類名,用來定義對象。
(2)類名 對象名
如: Student stud1,stud2;
直接用類名定義對象。
這兩種方法是等效的。第1種方法是從C語言繼承下來的,第2種方法是C++的特色,顯然第2種方法更為簡捷方便。
2.在聲明類類型的同時定義對象 classStudent{//聲明類類型public://先聲明公用部分voiddisplay(){cout<<″num:″<<num<<endl;cout<<″name:″<<name<<endl;cout<<″sex:″<<sex<<endl;}private://後聲明私有部分intnum;charname[20];charsex;}stud1,stud2;//定義了兩個Student類的對象在定義Student類的同時,定義了兩個Student 類的對象。
3.不出現類名,直接定義對象 class//無類名{private://聲明以下部分為私有的//...public://聲明以下部分為公用的//...}stud1,stud2;//定義了兩個無類名的類對象直接定義對象,在C++中是合法的、允許的,但卻很少用,也不提倡用。在實際的程序開發中,一般都採用上面3種方法中的第1種方法。在小型程序中或所聲明的類只用於本程序時,也可以用第2種方法。在定義一個對象時,編譯系統會為這個對象分配存儲空間,以存放對象中的成員。

❾ C語言中的類是什麼意思啊

C語言中+=是復合賦值運算符。復合賦值運算符就是在簡單賦值符「=」之前加上其它運算符構成,例如+=、-=、*=、/=、%=。

即:a+=1;等價於a=a+1。+=的意思就是把左邊的第一個符號移到右邊,其實就是b=b+c的意思。直接把b+=c的b+移到右邊,將b的值取出再取出c的值,相加然後賦給b,存儲在b開辟的內存空間中,類似的還有,b-=c、b*=c都是這個意思。

這么寫可以讓執行優化,定址a的地址一次即可,否則需要兩次對a進行定址。然而cpu的突飛猛進讓這個優化在幾十年前已經沒有實際價值了,保留下來無非是因為語法兼容和程序員習慣。

(9)c語言中對象與類的定義擴展閱讀

C語言中運算符號種類

1、算術運算符

用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。

2、關系運算符

用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。

3、邏輯運算符

用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4、位操作運算符

參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5、賦值運算符

用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

6、條件運算符

這是一個三目運算符,用於條件求值(?:)。

7、逗號運算符

用於把若干表達式組合成一個表達式(,)。

8、指針運算符

用於取內容(*)和取地址(&)二種運算。

9、求位元組數運算符

用於計算數據類型所佔的位元組數(sizeof)。

10、特殊運算符

有括弧(),下標[],成員(→,.)等幾種。

❿ 怎樣理解c++中的類和對象

面向對象是一種編程的方式..
就如同你思考問題的方式一樣,是一種規則,方法..
好比 C語言的面向過程一樣,它的著中點在於問題解決的過程,先干什麼,接著干什麼,最後干什麼..比較明顯的過程式,匯編更是面向對象編程的鼻祖..所以,它們很適合編寫,像操作系統,嵌入式等這些與硬體親近,且基本上不需要對程序進行較大修改的程序,用過程式就比較高效了.
而面向對象呢,它就不同於面向對象了,它的著重點在於,怎樣表示程序中的對象,這樣的程序很適合編寫一些像游戲,ERP,等等這樣的應用性軟體.

舉個例子..要寫一段程序模擬大自然創造世界的程序:
如果,是過程式的編寫方式,首先,創造宇宙,然後從宇宙的某個點開始,創造星系,將全部星系創造完畢,星系創造完畢,又從某個星系,開始創造該星系所有的子星系,完成後創造該星系中的其他子星系,將所有星系中的所有子星系全部創建完成之後,就開始在從整個宇宙中的某個星系中的子星系的某個星球開始,建立完整的生態體系,用地球做比喻,首先,建立細菌系,然後將細菌系分裂成動物,植物系列,動物系列,進行幾何式分裂,形成幾億種生命形態..依次為宇宙中的每個星球建立生態體系,完畢之後,宇宙的過程式創造就完畢了..這種方式有個明顯的不足的地方就是,當你在整個宇宙,創造完畢之後要加入一個新的星系,那對與程序員來說那將是災難性的,而且,可擴展性極差..
再看看面向對象:
首先為宇宙中的基本對象建模,宇宙這個結構中半包含的成員
class 宇宙
{
class* 大星系;
class 宇宙真空空間;
public:
//宇宙能進行的動作
宇宙();
宇宙(宇宙& a); //復制宇宙..
void operator=(宇宙& a); //復制宇宙.
~宇宙(); //自動銷毀宇宙..
void 增加星系(unsigned int 新增星系編號);
void 銷毀星系(unsigned int 已有星系編號);
...
...
... //等等操作
};
class 銀河系:public 大星系
{
};
class 太陽系:public 銀河系
{
class 地球;
class 火星;
...
};
class 地球
{
class 動物;
class 植物;
class 地球的狀態;
};
class 地球的狀態
{
class 陸地;
class 海洋;
...
};
class 陸地
{
class 亞洲;
class 歐洲;
...
}
class 亞洲
{
class 中國;
class 印度;
class 蒙古;
...
};
class 中國
{
class 省區[31];
}
class 省區
{
class 市區;
...
};
class 市區;
{
string 省名;
int 人口;
double 面積;
...
}
將宇宙中所有這些對象建模之後,只需生成一個宇宙對象,咋們的宇宙不就生成了..而且你要加入新的星系,或者毀滅某個星系不就輕而易舉,或者要在宇宙某個地方復制個地球,那還會有什麼難呢?
但並不是說面向對象的編程方式就能完全沒有過程式編程,那是不可能,好比,你把車子的所有部分造好了,你不組裝起來,它又怎麼可能開得起來呢,其實C語言中同樣有面向對象,struct 就是C語言的對象組織方式,只不過再C++中它得到了飛升..
這兩種編程的方式也沒有 誰強誰弱的說法,如果,用Java去編寫操作系統,無異於 用諸葛亮去單條呂布..反之,用匯編去編寫網路游戲,無異與讓張飛去考取狀元,術業有專攻..