c問題,類名後面加是什麼意思

2021-03-03 21:01:35 字數 5233 閱讀 3997

1樓:匿名使用者

把一個模板類例項化

char,說明這個類針對char型別處理

c++類名後加冒號是什麼意思

2樓:匿名使用者

在c++語言中,一個派生類可以從一個基類派生,也可以從多個基類派生。從一個基類派生的繼承稱為單繼承;從多個基類派生的繼承稱為多繼承。

派生類的定義格式

單繼承的定義格式如下:

class 《派生類名》:《繼承方式》《基類名》

;《繼承方式》常使用如下三種關鍵字給予表示:

public 表示公有基類;

private 表示私有基類;

protected 表示保護基類;

3樓:可以叫我表哥

c++如下定義類函式後加冒號是表示函式屬於這個類,類的成員函式定義在類外面的時候需要這麼用。

類的成員函式描述的是類的行為,是程式演算法的實現部分,是對封裝的資料進行操作的方法。類的成員函式的原型要寫在類體中,原型說明了函式的參數列和返回值型別。而函式的定義一般在類外面,也可以直接在類內部定義。

前者與普通函式不同的是,實現成員函式時要指明類的名稱,具體形式為:

返回值型別 類名 ::函式成員名(參數列);

而後者一般為一些短小的函式(5行以內),也就是行內函數。

示例:class student

;void student∷display( )//在類外定義display類函式

4樓:

class a {};

class b:public a //這兒表示繼承//這兒表示建構函式的初始化列表

private:

int b;};

5樓:匿名使用者

cmenu_mainmenu 公有繼承cpage_menu

6樓:師大考研醬油男

公有方式繼承cpage_menu類

c++中的<>代表什麼意思?

7樓:天涼秋夜

c++中的<>代表c++模板。

模板是c++支援引數化多型的工具,使用

模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別。

c++語言是一種物件導向的強型別語言,由at&t的bell實驗室於2023年推出。c++語言是c語言的一個向上相容的擴充。c++是一種支援多範型的程式設計語言,它既支援物件導向的程式設計,也支援程序導向的程式設計。

c++支援基本的物件導向概念:物件、類、方法、訊息、子類和繼承。

8樓:匿名使用者

c++模板

模板是c++支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別。

模板是一種對型別進行引數化的工具;

通常有兩種形式:函式模板和類别範本;

函式模板針對僅引數型別不同的函式;

類别範本針對僅資料成員和成員函式型別不同的類。

使用模板的目的就是能夠讓程式設計師編寫與型別無關的**。比如編寫了一個交換兩個整型int 型別的swap函式,這個函式就只能實現int 型,對double,字元這些型別無法實現,要實現這些型別的交換就要重新編寫另一個swap函式。使用模板的目的就是要讓這程式的實現與型別無關,比如一個swap模板函式,即可以實現int 型,又可以實現double型的交換。

模板可以應用於函式和類。下面分別介紹。

注意:模板的宣告或定義只能在全域性,名稱空間或類範圍內進行。即不能在區域性範圍,函式內進行,比如不能在main函式中宣告或定義一個模板。

一、函式模板通式

1、函式模板的格式:

template

返回型別 函式名(引數列表)

其中template和class是關見字,class可以用typename 關見字代替,在這裡typename 和class沒區別,<>括號中的引數叫模板形參,模板形參和函式形參很相像,模板形參不能為空。一但宣告瞭模板函式就可以用模板函式的形參名宣告類中的成員變數和成員函式,即可以在該函式中使用內建型別的地方都可以使用模板形參名。模板形參需要呼叫該模板函式時提供的模板實參來初始化模板形參,一旦編譯器確定了實際的模板實參型別就稱他例項化了函式模板的一個例項。

比如swap的模板函式形式為

template void swap(t& a, t& b){},

當呼叫這樣的模板函式時型別t就會被被呼叫時的型別所代替,比如swap(a,b)其中a和b是int 型,這時模板函式swap中的形參t就會被int 所代替,模板函式就變為swap(int &a, int &b)。而當swap(c,d)其中c和d是double型別時,模板函式會被替換為swap(double &a, double &b),這樣就實現了函式的實現與型別無關的**。

2、注意:對於函式模板而言不存在 h(int,int) 這樣的呼叫,不能在函式呼叫的引數中指定模板形參的型別,對函式模板的呼叫應使用實參推演來進行,即只能進行 h(2,3) 這樣的呼叫,或者int a, b; h(a,b)。

二、類别範本通式

1、類别範本的格式為:

template

class 類名

;類别範本和函式模板都是以template開始後接模板形參列表組成,模板形參不能為空,一但宣告瞭類别範本就可以用類别範本的形參名宣告類中的成員變數和成員函式,即可以在類中使用內建型別的地方都可以使用模板形參名來宣告。比如

templateclass a;

在類a中宣告瞭兩個型別為t的成員變數a和b,還宣告瞭一個返回型別為t帶兩個引數型別為t的函式hy。

2、類别範本物件的建立:比如一個模板類a,則使用類别範本建立物件的方法為am;在類a後面跟上一個<>尖括號並在裡面填上相應的型別,這樣的話類a中凡是用到模板形參的地方都會被int 所代替。當類别範本有兩個模板形參時建立物件的方法為am;型別之間用逗號隔開。

3、對於類别範本,模板形參的型別必須在類名後的尖括號中明確指定。比如a<2> m;用這種方法把模板形參設定為int是錯誤的(編譯錯誤:error c2079:

'a' uses undefined class 'a'),類别範本形參不存在實參推演的問題。也就是說不能把整型值2推演為int 型傳遞給模板形參。要把類别範本形參調置為int 型必須這樣指定am。

4、在類别範本外部定義成員函式的方法為:

template《模板形參列表》 函式返回型別 類名《模板形參名》::函式名(引數列表),

比如有兩個模板形參t1,t2的類a中含有一個void h()函式,則定義該函式的語法為:

templatevoid a::h(){}。

注意:當在類外面定義類的成員時template後面的模板形參應與要定義的類的模板形參一致。

5、再次提醒注意:模板的宣告或定義只能在全域性,名稱空間或類範圍內進行。即不能在區域性範圍,函式內進行,比如不能在main函式中宣告或定義一個模板。

9樓:匿名使用者

這個<>是用來寫指令的,比如hallowork

c++ 模板類 後面每個方法前的template 有什麼意義 對每個方法有什麼影響?

10樓:匿名使用者

c++集合了過程式

語言,通用語言,面嚮物件語言的眾多特點。模板是通用語言的特性,模板又叫引數化型別(parametrized types)。

模板的定義。以下是模板定義的一般格式:

template //class 也可以換成typename,後者是新來的。

void swap(any &a,any &b)

利用模板機制可以顯著減少冗餘資訊,能大幅度地節約程式**,進一步提高物件導向程式的可重用性和維護性。

在使用過程中,注意的問題:

(1)在template語句與函式模板定義語句之間不允許有別的語句。

template

int i; // 錯誤,不允許插入別的語句

t max(t x,t y)

(2)模板函式類似於過載函式,只不過它更嚴格一些。函式被過載的時候,在每個函式體內可以執行不同的動作。但同一個函式模板例項化後的所有模板函式都必須執行相同的動作。

例如,下面過載函式就不能用模板函式代替,因為它們所執行的動作是不同的。

void outdate(int i)

(3)在函式模板中允許使用多個型別引數。但是應當注意template定義部分的每個型別引數前必須有關鍵字class(typename)。

#inculde

template

void myfunc(type1 x,type2 y)

void fun(int i,char c)

{max(i,i); // 正確,呼叫max(int,int)

c++裡面」>>「和」<<「各是什麼意思?

11樓:匿名使用者

《和》在c中是用來做位運算的,在c++中被過載了,即可以做位運算也可以做輸入輸出zhi流。

區別如下:

1、應用場合不同:

c語言是結構化和模組化的語言,是程序導向的。當程式的規模較小時,c語言運用起來得心應手。但是當問題比較複雜、程式的規模比較大的時候,c語言就會展現出它的侷限性;

正是因為有大規模的程式需要去處理,c++就應運而生了。c++是由c發展而來的,與c語言相容。c++既可用於程序導向的結構化程式設計,也可用於物件導向的程式設計,是一種功能強大的混合型的程式設計語言。

2、輸入/輸出函式不同:

c語言

取地址,輸入a的值,%d和%f稱為格式說明符,表示以此格式輸出對應表示式的值,\n表示換行。%6.3f中的6表示佔六列,表示輸出對應浮點表示式值時只輸出三位小數。

c++:int a=5;float b;cout << "a=">b;cout必須要和」<<「一起使用,cin必須要和」>>「一起使用。得c++中的輸入輸出流是很強大的,不像c裡面還要指定格式,endl表示換行。

12樓:匿名使用者

「>>、<<」除了 cin>> 輸入流;cout《輸出流 的意思外

還有另一個是:>>向右位移、《向左位移;就是一個整數,如10,二進位制為1010,向右位移一位就是0101,既是10>>1=5,

不知道樓主是不是想知道這個

C 類繼承問題,C C 類繼承問題

你宣告的三個指標是不同型別的指標,會根據資料型別自動匹配,例如你如果宣告一個指標b指向a的一個物件的話會出錯,但是由於這個物件是c的,而c繼承了a和b,這時候通過資料型別強制轉換便可以從c的物件中獲取出b型別物件的地址。至於為什麼是a的,由於在繼承的時候有先後順序,其分配記憶體的先後順序也根據其繼承...

C類」的問題

pengjianhang 都說到這份兒了,你牛。問題補充 樓下的連線我看了,和書裡面介紹的東西一樣,讓我很暈,我只是想知道在程式設計中它的作用是什麼,最好能舉一個簡單的例子.目的是把它理解 回答 其實你就是不明白如何抽取類,以及定義類的屬性和行為咯。很簡單啊,首先根據擬獲取的資訊,按照你自己的一個標...

c 中如 類名 類名 物件 是什麼意思

這一句 不懂為何 類名 類名 物件 c plex是返回的型別,return y 中的y不就是c plex型別麼。c plex add c plex x 在add前面加c plex 是域的意思,是為了告訴其他程式,這個add函式是c plex的 c plex x的意思是引數x是c plex型別的引用 ...