類是編程人員表達(dá)自定義數(shù)據(jù)類型的C++機(jī)制。它和C語(yǔ)言中的結(jié)構(gòu)類似,C++類
創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元札達(dá)做網(wǎng)站,已為上家服務(wù),為札達(dá)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
支持?jǐn)?shù)據(jù)抽象和面向?qū)ο蟮某绦蛟O(shè)計(jì),從某種意義上說(shuō),也就是數(shù)據(jù)類型的設(shè)
計(jì)和實(shí)現(xiàn)。
一、類的設(shè)計(jì)
1.類的聲明
class 類名
{
private: //私有
...
public: //公有
...
};
2.類的成員
一般在C++類中,所有定義的變量和函數(shù)都是類的成員。如果是變量,我們就叫
它數(shù)據(jù)成員如果是函數(shù),我們就叫它成員函數(shù)。
3.類成員的可見性
private和public訪問控制符決定了成員的可見性。由一個(gè)訪問控制符設(shè)定的可
訪問狀態(tài)將一直持續(xù)到下一個(gè)訪問控制符出現(xiàn),或者類聲明的結(jié)束。私有成員
僅能被同一個(gè)類中的成員函數(shù)訪問,公有成員既可以被同一類中的成員函數(shù)訪
問,也可以被其他已經(jīng)實(shí)例化的類中函數(shù)訪問。當(dāng)然,這也有例外的情況,這
是以后要討論的友元函數(shù)。
類中默認(rèn)的數(shù)據(jù)類型是private,結(jié)構(gòu)中的默認(rèn)類型是public。一般情況下,變
量都作為私有成員出現(xiàn),函數(shù)都作為公有成員出現(xiàn)。
類中還有一種訪問控制符protected,叫保護(hù)成員,以后再說(shuō)明。
4.初始化
在聲明一個(gè)類的對(duì)象時(shí),可以用圓括號(hào)()包含一個(gè)初始化表。
看下面一個(gè)例子:
#include iostream.h
class Box
{
private:
int height,width,depth; //3個(gè)私有數(shù)據(jù)成員
public:
Box(int,int,int);
~Box();
int volume(); //成員函數(shù)
};
Box::Box(int ht,int wd,int dp)
{
height=ht;
width=wd;
depth=dp;
}
Box::~Box()
{
//nothing
}
int Box::volume()
{
return height*width*depth;
}
int main()
{
Box thisbox(3,4,5); //聲明一個(gè)類對(duì)象并初始化
cout return 0;
}
當(dāng)一個(gè)類中沒有private成員和protected成員時(shí),也沒有虛函數(shù),并且不是從
其他類中派生出來(lái)的,可以用{}來(lái)初始化。(以后再講解)
5.內(nèi)聯(lián)函數(shù)
內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別是:內(nèi)聯(lián)函數(shù)是在編譯過(guò)程中展開的。通常內(nèi)聯(lián)函
數(shù)必須簡(jiǎn)短。定義類的內(nèi)聯(lián)函數(shù)有兩種方法:一種和C語(yǔ)言一樣,在定義函數(shù)時(shí)
使用關(guān)鍵字inline。如:
inline int Box::volume()
{
return height*width*depth;
}
還有一種方法就是直接在類聲明的內(nèi)部定義函數(shù)體,而不是僅僅給出一個(gè)函數(shù)
原型。我們把上面的函數(shù)簡(jiǎn)化一下:
#include iostream.h
class Box
{
private:
int height,width,depth;
public:
Box(int ht,int wd,int dp)
{
height=ht;
width=wd;
depth=dp;
}
~Box();
int volume()
{
return height*width*depth;
}
};
int main()
{
Box thisbox(3,4,5); //聲明一個(gè)類對(duì)象并初始化
cout return 0;
}
這樣,兩個(gè)函數(shù)都默認(rèn)為內(nèi)聯(lián)函數(shù)了。
函數(shù)定義包括有參函數(shù)和無(wú)參函數(shù),無(wú)參函數(shù)為:
類型標(biāo)示符
函數(shù)名()
{
聲明語(yǔ)句
語(yǔ)句部分
}
無(wú)參函數(shù):
類型標(biāo)示符
函數(shù)名(形式參數(shù)列表)
{
聲明部分
語(yǔ)句部分
}
例如:
int
max(int
x,int
y)
{
int
z;
z=xy?x:y;
return(z);
}
C語(yǔ)言中一個(gè)完整的函數(shù)由函數(shù)首部和函數(shù)體構(gòu)成,而且定義函數(shù)時(shí)兩者都是必不可少的。
函數(shù)定義的一般形式如下:
類型標(biāo)識(shí)符
函數(shù)名(形參表列)
//
這是函數(shù)首部
//
以下{
}內(nèi)的是函數(shù)體
{
說(shuō)明部分
執(zhí)行部分
}
舉例說(shuō)明如下:
// 定義一個(gè)不帶返回值的函數(shù)
// 函數(shù)功能:輸出形參的值
void fun(int a, int b)
{
printf("%d, %d\n", a, b);
}
// 定義一個(gè)帶返回值的函數(shù)
// 函數(shù)功能:返回2個(gè)整數(shù)數(shù)的最大值
int fun(int a, int b)
{
return ab ? a : b;
}
函數(shù)定義的一般形式只包括函數(shù)首部和函數(shù)體兩部分,其中函數(shù)首部由函數(shù)類型和函數(shù)名和形參表組成,函數(shù)體包括一對(duì)大括號(hào)內(nèi)的若干條語(yǔ)句,體現(xiàn)函數(shù)的實(shí)現(xiàn)過(guò)程,并用return 語(yǔ)句返回寒函數(shù)運(yùn)算結(jié)。沒聽說(shuō)過(guò)什么六個(gè)部分。
構(gòu)造數(shù)據(jù)類型?
我就知道
結(jié)構(gòu)體
和
共用體
,而且共用體用的還非常少。結(jié)構(gòu)體的話,參考下類的定義和
實(shí)例化
就可以了,其實(shí)差不太多的。
你要的是何時(shí)說(shuō)明吧
printf 格式說(shuō)明符;
%c --字符
%d --十進(jìn)制整數(shù)
%i --同%d
%e --以科學(xué)計(jì)數(shù)法表示浮點(diǎn)數(shù)(指數(shù)部分以e表示)
%E --以科學(xué)計(jì)數(shù)法表示浮點(diǎn)數(shù)(指數(shù)部分以E表示)
%f --浮點(diǎn)數(shù)
%g --在%e和%f表示中選取擇短的一種
%G --在%E和%f表示中選取擇短的一種
%o --無(wú)符號(hào)八進(jìn)制整數(shù)
%s --字符串
%u --無(wú)符號(hào)整數(shù)
%x --無(wú)符號(hào)十六進(jìn)制(小寫x)整數(shù)
%X --無(wú)符號(hào)十六進(jìn)制(大寫X)整數(shù)
%p --輸出指針內(nèi)容
%n --顯示至此printf已輸入的字符數(shù)
%% --顯示百分號(hào)
scanf 格式說(shuō)明符;
%c --讀字符
%d --讀整數(shù)
%i --同%d
%e --讀浮點(diǎn)數(shù)
%f --讀浮點(diǎn)數(shù)
%g --讀浮點(diǎn)數(shù)
%o --讀八進(jìn)制數(shù)
%s --讀字符串
%x --讀十六進(jìn)制整數(shù)
%p --讀指針
%n --至此已讀入的字符數(shù)
%u --讀無(wú)符號(hào)整數(shù)
%[] --搜索字符集合
網(wǎng)站標(biāo)題:構(gòu)造函數(shù)C語(yǔ)言中定義形式 c++定義構(gòu)造函數(shù)
文章URL:http://www.muchs.cn/article46/hggeeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、企業(yè)建站、軟件開發(fā)、面包屑導(dǎo)航、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)