在C 中,向量類和普通類有什麼區別,有什麼作用

2021-05-05 18:12:38 字數 4775 閱讀 3267

1樓:金色潛鳥

字面上意思,向量類(vector) 是向量,普通類 是標量。

數學物理知識告訴我們 向量 有大小,有方向(例如力,速度),標量 有大小,無方向(例如 溫度,時間)。

c++ vector類是以陣列為基礎的的容器,提供具有連續記憶體地址的資料結構,可通過下標運算子[ ]直接有效地訪問向量的任何元素。與陣列不同,vector的記憶體用盡時,vector自動分配更大的連續記憶體區,將原先的元素複製到新的記憶體區,並釋放舊的記憶體區。

普通類指 非 vector類,也不是 列表(list)和雙端佇列(deque)這些容器,而是平常我們慣用的 陣列,結構,聯合體 等等。例如 陣列可以 用 malloc 動態分配大小,可以用realloc 動態擴充 或 減少存放單元大小,這需要程式設計師自己照料操作。

向量類有自己所支援的迭代子型別,vector支援隨機訪問迭代子。

普通類 屬於 c 語言,向量類 屬於 c++ 語言。c 的東西可以用於 c++。c++ 的東西不能用於 c。

2樓:匿名使用者

你說的是vector吧,這是標準庫中的容器類,使用模板實現的類,至於你說的普通類又指什麼。

vs2010中mfc的c++類和c++類有什麼區別

3樓:

沒有區別啊,c++的特性和功能mfc都有,庫函式也都有隻是mfc中會自動生成一些類,mfc還封裝好了一些類我們的c++和mfc是作為一門課教學的~~mfc的類應該可以選擇繼承

mfc class:你將要新增的類是繼承自其他的類(將從下面的下拉框中選擇其父類,這個父類是mfc庫中的類,如cfile等),這樣定義出來的類將具有父類(mfc類)的所有功能及特性。

generic class :表示定義一般的類(也可說是非mfc類),一般來說,需要自定義功能的類(不能從已有mfc類派生出來)將選擇這種型別,這樣定義出來的類不具有mfc框架功能,但體積較小,其功能將完全由程式設計師自己定製。

4樓:

哦,是這麼個問題啊。可能你沒有理解這個mfc是怎麼一回事。mfc的全稱是微軟基礎類庫(microsoft foundation class)。

class說白了,就是對資料進行了一些封裝。mfc類是微軟已經給你寫好的,你需要什麼物件,你去構造即可。當然,有時候自己需要一些微軟提供的這個類庫不能產生的物件,那麼這時,我們自己可以寫個c++類去產生自己需要的物件。

為什麼是c++類呢,為什麼不是c類呢,因為c語言不是物件導向的語言,不支援class。

總結: c++類是自己去寫的,mfc類是微軟提供的

你這個當然要選mfc類

c++中,類别範本和模板類有什麼區別?

5樓:匿名使用者

類模版 (class template)說明的是該類是一個模版,它代表的是整個類家族的引數化描述。

模版類 (template class)通常被用於下面幾個方面:

(1)作為類模版的同義詞

(2)從模版產生類

(3)具有一個template-id名稱的類。(template-id指的是模版名稱與緊隨其後的尖括號內部的所有實參的組合)

第二個和第三個含義區別是很細微的,它們的這些區別無關緊要。

通常使用的是 類模版。就像常使用 函式模版,而不是模版函式。

6樓:匿名使用者

類别範本的重點是模板。表示的是一個模板,專門用於產生類的模子。例子:

template

class vector

; 使用這個vector模板就可以產生很多的class(類),vector 、vector 、vector < vector > 、vector ……。

模板類的重點是類。表示的是由一個模板生成而來的類。例子:

上面的vector 、vector 、……全是模板類。

7樓:匿名使用者

類别範本,主要是指c++中的模板可以分為函式模板和類别範本兩種。

模板類,則是和普通類相區別,指使用了模板的類。

兩者都是指代使用了template進行定義或宣告的類。

8樓:匿名使用者

只是說法不同. 意義一樣.

c++中的類和類的物件是什麼意思

9樓:

通俗的說:「人」是一個概念,也就是一個類,而具體的某個人,如張三,李四,都是人的具體的個體,也就是「人」類的物件。也就是說,類和物件是概念和具體例項的關係。

10樓:千鋒教育

c++類的定義:

類是定義同一類所有物件的變數和方法的藍圖或原型。

類也可以定義類變數和類方法。可以從類的例項中或者直接從類中訪問類變數和方法。類方法只能操作類變數,不必訪問例項變數或例項方法。

系統在第一次在程式中遇到一個類時為這個類建立它的所有類變數的拷貝,這個類的所有例項共享它的類變數。

c++物件的定義:

定義一個類就相當於建立了一個新的class型別。要使用類,還必須用已經定義的類去說明它的例項變數(即物件)。在c++中,class型別一旦被定義,它的例項變數(物件)就能被建立,並初始化,且能定義指標變數指向它。

例項化的類就是物件。

類和物件其實是c語言裡的結構體的延伸,在c++裡,struct 和 class其實本質上是一樣的,唯一區別就是struct預設是公開的,class預設是私有的,公開時需要宣告為public;還有就是c語言裡的結構體,不能包含函式和繼承,c++可以包含函式以及繼承其他的類。

11樓:匿名使用者

//這個object就是個類

class object

;int main()

12樓:自由的人

類是一些屬性相同或者有某些共同特徵的實際物體的抽象,比方說車就是一個類,物件是類的例項化,物件是實際的物體,汽車就是物件,卡車也是物件,裝甲車也是物件。

c++中 抽象類和虛基類用途上有什麼區別

13樓:金色潛鳥

語法上有抽象類和虛基類,不等於你一定要用它。花裡胡哨的東西,我通常不用。

我能想到的抽象類用處,大概這個優點可以用一用:

含有純虛擬函式的類都是抽象類。基類中實際上並不使用這個函式,它只是通知編譯系統:

在這裡宣告一個虛擬函式,留待在派生類中定義。為一個類族提供一個公共介面。

例如,計算平面形狀的面積,抽象類 基類中 virtual float area( ) const =0;

派生類三角形,派生類圓 各自定義了 area( ) 具體的計算。一旦有了派生的三角形或圓,我們可以用同樣的函式名.area( ) 計算面積。

虛基類,它的構建要在派生類裡做,而且先於派生類自己的構建。當有派生類1,派生類2,生成的派生類12時,派生類12只執行一次虛基類的構建。虛基類的物件只有唯一一個。

至於它有什麼特殊用途,沒想到。

14樓:du小蝦

虛基類是相對於它的派生類而言的,它本身可以是一個普通的類。

只有它的派生類虛繼承它的時候,它才稱作虛基類,如果沒有虛繼承的話,就稱為基類。比如類b虛繼承於類a,那類a就稱作類b的虛基類,如果沒有虛繼承,那類b就只是類a的基類。

虛繼承主要用於一個類繼承多個類的情況,避免重複繼承同一個類兩次或多次。

例如 由類a派生類b和類c,類d又同時繼承類b和類c,這時候類d就要用虛繼承的方式避免重複繼承類a兩次。

而抽象類是指帶有有一個或一個以上的純虛擬函式的類。抽象類一般值用於繼承,不能定義類物件,但可以定義類指標和引用

在c++裡繼承虛基類和普通基類有什麼區別?

15樓:匿名使用者

class c

c++ 過載 覆蓋 隱藏的區別和執行方式

成員函式被過載的特徵

(1)相同的範圍(在同一個類中);

(2)函式名字相同;

(3)引數不同;

(4)virtual 關鍵字可有可無。

覆蓋是指派生類函式覆蓋基類函式,特徵是

(1)不同的範圍(分別位於派生類與基類);

(2)函式名字相同;

(3)引數相同;

(4)基類函式必須有virtual 關鍵字。

「隱藏」是指派生類的函式遮蔽了與其同名的基類函式,規則如下(1)如果派生類的函式與基類的函式同名,但是引數不同。此時,不論有無virtual關鍵字,基類的函式將被隱藏(注意別與過載混淆)。

(2)如果派生類的函式與基類的函式同名,並且引數也相同,但是基類函式沒有virtual 關鍵字。此時,基類的函式被隱藏(注意別與覆蓋混淆)

3種情況怎麼執行:1。過載:看引數2。隱藏:用什麼就呼叫什麼3。覆蓋:呼叫派生類

16樓:匿名使用者

會輸出:class c

回答者: wanfustudio 回答的沒有錯,如果你想要把<<"class a"《也輸出來,採用構造方法才行,他會先建立父類的物件。

17樓:自由心魔

當某類的部分或全部直接基類是從另一個基類共同派生而來時,這直接基類中,從上一級基類繼承來的成員就擁有相同的名稱,派生類的物件的這些同名成員在記憶體中同時擁有多個拷貝,同一個函式名有多個對映。可以使用作用域分辨符來唯一標識並分別訪問它們。也可以將共同基類設定為虛基類,這時從不同的路徑繼承過來的同名資料成員在記憶體中只擁有一個拷貝,同一個函式名也只有一個對映。

也就是說虛基類解決了同名成員的唯一標識問題。

基金a類和c類收費什麼區別,基金a類和c類有什麼區別

如果是abc三類的 a類一般是代表前端收費,b類代表後端收費,而c類是沒有申購費,即無論前端還是後端,都沒有手續費。http www.lqz.cn 天下沒有免費午餐。不收一次性申購費,就按日收取銷售服務費,但這也不是說這中間沒有區別。以華夏債券a b c三類為例,由於沒有任何申購費,c類雖然有銷售費...

c抽象類和普通類的區別,java中抽象類和介面的區別?

1.c 沒有abstract.vc提供了一個inte ce 2.抽象類就是指不能例項化的類,因為它們包含了純虛方法。3.虛擬函式是在申明的時候用了關鍵字virtual的類的 非靜態 成員函式 抽象類只能作為基類,提供介面,不能有例項。普通類既可以作為基類,又可以有例項。java中抽象類和介面的區別?...

滬深300基金A類和C類有什麼區別

如果是abc三類的 a類一般是代表前端收費,b類代表後端收費,而c類是沒有申購費,即無論前端還是後端,都沒有手續費。天下沒有免費午餐。不收一次性申購費,就按日收取銷售服務費,但這也不是說這中間沒有區別。以華夏債券a b c三類為例,由於沒有任何申購費,c類雖然有銷售費,但0.3 的銷售費3年下來還不...