類是編程人員表達(dá)自定義數(shù)據(jù)類型的C++機(jī)制。它和C語言中的結(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)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元札達(dá)做網(wǎng)站,已為上家服務(wù),為札達(dá)各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
支持?jǐn)?shù)據(jù)抽象和面向?qū)ο蟮某绦蛟O(shè)計(jì),從某種意義上說,也就是數(shù)據(jù)類型的設(shè)
計(jì)和實(shí)現(xiàn)。
一、類的設(shè)計(jì)
1.類的聲明
class 類名
{
private: //私有
...
public: //公有
...
};
2.類的成員
一般在C++類中,所有定義的變量和函數(shù)都是類的成員。如果是變量,我們就叫
它數(shù)據(jù)成員如果是函數(shù),我們就叫它成員函數(shù)。
3.類成員的可見性
private和public訪問控制符決定了成員的可見性。由一個訪問控制符設(shè)定的可
訪問狀態(tài)將一直持續(xù)到下一個訪問控制符出現(xiàn),或者類聲明的結(jié)束。私有成員
僅能被同一個類中的成員函數(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ù)成員,以后再說明。
4.初始化
在聲明一個類的對象時,可以用圓括號()包含一個初始化表。
看下面一個例子:
#include iostream.h
class Box
{
private:
int height,width,depth; //3個私有數(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); //聲明一個類對象并初始化
cout return 0;
}
當(dāng)一個類中沒有private成員和protected成員時,也沒有虛函數(shù),并且不是從
其他類中派生出來的,可以用{}來初始化。(以后再講解)
5.內(nèi)聯(lián)函數(shù)
內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別是:內(nèi)聯(lián)函數(shù)是在編譯過程中展開的。通常內(nèi)聯(lián)函
數(shù)必須簡短。定義類的內(nèi)聯(lián)函數(shù)有兩種方法:一種和C語言一樣,在定義函數(shù)時
使用關(guān)鍵字inline。如:
inline int Box::volume()
{
return height*width*depth;
}
還有一種方法就是直接在類聲明的內(nèi)部定義函數(shù)體,而不是僅僅給出一個函數(shù)
原型。我們把上面的函數(shù)簡化一下:
#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); //聲明一個類對象并初始化
cout return 0;
}
這樣,兩個函數(shù)都默認(rèn)為內(nèi)聯(lián)函數(shù)了。
函數(shù)定義包括有參函數(shù)和無參函數(shù),無參函數(shù)為:
類型標(biāo)示符
函數(shù)名()
{
聲明語句
語句部分
}
無參函數(shù):
類型標(biāo)示符
函數(shù)名(形式參數(shù)列表)
{
聲明部分
語句部分
}
例如:
int
max(int
x,int
y)
{
int
z;
z=xy?x:y;
return(z);
}
C語言中一個完整的函數(shù)由函數(shù)首部和函數(shù)體構(gòu)成,而且定義函數(shù)時兩者都是必不可少的。
函數(shù)定義的一般形式如下:
類型標(biāo)識符
函數(shù)名(形參表列)
//
這是函數(shù)首部
//
以下{
}內(nèi)的是函數(shù)體
{
說明部分
執(zhí)行部分
}
舉例說明如下:
// 定義一個不帶返回值的函數(shù)
// 函數(shù)功能:輸出形參的值
void fun(int a, int b)
{
printf("%d, %d\n", a, b);
}
// 定義一個帶返回值的函數(shù)
// 函數(shù)功能:返回2個整數(shù)數(shù)的最大值
int fun(int a, int b)
{
return ab ? a : b;
}
函數(shù)定義的一般形式只包括函數(shù)首部和函數(shù)體兩部分,其中函數(shù)首部由函數(shù)類型和函數(shù)名和形參表組成,函數(shù)體包括一對大括號內(nèi)的若干條語句,體現(xiàn)函數(shù)的實(shí)現(xiàn)過程,并用return 語句返回寒函數(shù)運(yùn)算結(jié)。沒聽說過什么六個部分。
構(gòu)造數(shù)據(jù)類型?
我就知道
結(jié)構(gòu)體
和
共用體
,而且共用體用的還非常少。結(jié)構(gòu)體的話,參考下類的定義和
實(shí)例化
就可以了,其實(shí)差不太多的。
你要的是何時說明吧
printf 格式說明符;
%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 --無符號八進(jìn)制整數(shù)
%s --字符串
%u --無符號整數(shù)
%x --無符號十六進(jìn)制(小寫x)整數(shù)
%X --無符號十六進(jìn)制(大寫X)整數(shù)
%p --輸出指針內(nèi)容
%n --顯示至此printf已輸入的字符數(shù)
%% --顯示百分號
scanf 格式說明符;
%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 --讀無符號整數(shù)
%[] --搜索字符集合