類是編程人員表達(dá)自定義數(shù)據(jù)類型的C++機(jī)制。它和C語言中的結(jié)構(gòu)類似,C++類

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)瀘水免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
支持?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ù)了。
#include iostream
using namespace std;
class Time{
public:
Time(int Hour, int Minute, int Second)
{
hour = Hour;
minute = Minute;
second = Second;
}
Time()
{
hour = minute = second = 0;
}
~Time()
{
cout"Goodbye!"endl;
}
void print_time()
{
couthour":"minute":"secondendl;
}
int getHour()
{
return hour;
}
int getMinute()
{
return minute;
}
int getSecond()
{
return second;
}
Time(Time time)
{
hour = time.getHour();
minute = time.getMinute();
second = time.getSecond();
}
private:
int hour, minute, second;
};
int main()
{
Time a(12, 34, 56), b;
a.print_time();
b.print_time();
b = a;
b.print_time();
return 0;
}
1.第20行中直接書寫這個語句,只打印gcd函數(shù)中的輸出部分,雖然也能得到返回值,但不會打印返回值。并不是不能得到返回值。
2.printf("%d",gcd(x,y)運(yùn)行過程:先運(yùn)行函數(shù)gcd(),當(dāng)然運(yùn)行過程中,函數(shù)內(nèi)包含的打印語句照樣全部打印;最后再輸出gcd函數(shù)得到的返回值。并不是只打印返回值。
3.如果不要求函數(shù)可以輸出形參值a和b以便觀察函數(shù)gcd()的遞歸計(jì)算過程,圖二寫法也是正確的。第5行和第7行沒有else也是對的,是因?yàn)閮蓚€return語句與if語句完美配合,間接實(shí)現(xiàn)了分支語句的全部功能。
網(wǎng)站欄目:c語言構(gòu)造函數(shù)例題,c語言程序設(shè)計(jì)例題
標(biāo)題來源:http://chinadenli.net/article10/dsgdggo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站收錄、網(wǎng)站營銷、App設(shè)計(jì)、建站公司、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)