第1關(guān):類外定義存取函數(shù)
任務(wù)描述
本關(guān)仍然有一個 Int
類,該類包含一個 int
類型的成員。為其編寫存取函數(shù)。注意,存取函數(shù)要在類外實現(xiàn)。
相關(guān)知識
類的定義中,既可以書寫成員函數(shù)的聲明,也可以書寫成員函數(shù)的定義(即實現(xiàn))。如果在類中定義成員函數(shù),則該成員函數(shù)被視作 inline
。 inline
一般只用于較“短小的”函數(shù):3 到 5 行,沒有循環(huán)。 因此,某些成員函數(shù)必然要寫在類的定義之外。 假設(shè)類名為 Int
,成員函數(shù)名為 getValue
,則在類外書寫成員函數(shù),函數(shù)頭必須寫為:
int Int::getValue()const{}
因為 Int::getValue
才是該成員函數(shù)的全名。
編程要求
根據(jù)提示,在右側(cè)編輯器的Begin-End區(qū)域內(nèi)補(bǔ)充代碼。
測試說明
本關(guān)的項目將會包括3個文件,main.cpp、Int.h 和 Int.cpp。main.cpp 中包含主函數(shù),是已經(jīng)寫好的;Int.h 中包含 Int
類的定義,包括成員函數(shù)的聲明,也是寫好的;Int.cpp 是空的,有待完成,需要填寫的內(nèi)容主要是 Int
類成員函數(shù)的實現(xiàn),當(dāng)然也要包括必要的頭文件。
Int
類的定義如下文章來源:http://www.zghlxwxcb.cn/news/detail-741929.html
/**
* 這是一個包裝類(wrapper class),包裝類在C++中有點小小的用處(基本上沒用),在Java中的用處更大一些。
*/
#ifndef _INT_H_ //這是define guard
#define _INT_H_ //在C和C++中,頭文件都應(yīng)該有這玩意
class Int{
private://這是訪問控制——私有的
int value; //這是數(shù)據(jù)成員,我們稱Int是基本類型int的包裝類,就是因為Int里面只有一個int類型的數(shù)據(jù)成員
public: //這是公有的
//以下是成員函數(shù)的聲明
int getValue()const;
void setValue(int v);
};//記住這里有一個分號
#endif
main函數(shù)如下:
#include "Int.h"
#include <iostream>
using namespace std;
int main(){
int x;
cin>>x;
Int a;
a.setValue(x);
cout<<a.getValue()<<endl;
return 0;
}
/********* Begin ********/
#include "Int.h"
int Int::getValue()const{
return value;
}
void Int::setValue(int v){
value = v;
}
/******** End **********/
第2關(guān):類外定義構(gòu)造函數(shù)
任務(wù)描述
本關(guān)仍然有一個 Int
類,該類包含一個 int
類型的成員。為其編寫構(gòu)造函數(shù)和存取函數(shù)。注意,所有成員函數(shù)均要在類外實現(xiàn)。
相關(guān)知識
類的定義中,既可以書寫成員函數(shù)的聲明,也可以書寫成員函數(shù)的定義(即實現(xiàn))。如果在類中定義成員函數(shù),則該成員函數(shù)被視作 inline
。 inline
一般只用于較“短小的”函數(shù):3 到 5 行,沒有循環(huán)。 因此,某些成員函數(shù)必然要寫在類的定義之外。 假設(shè)類名為 Int
,則在類外書寫構(gòu)造函數(shù),函數(shù)頭必須寫為:
Int::Int()...
因為 Int::Int
才是該構(gòu)造函數(shù)的全名。
編程要求
根據(jù)提示,在右側(cè)編輯器的Begin-End區(qū)域內(nèi)補(bǔ)充代碼。
測試說明
本關(guān)的項目將會包括3個文件,main.cpp、Int.h 和 Int.cpp。main.cpp 中包含主函數(shù),是已經(jīng)寫好的;Int.h 中包含 Int
類的定義,包括成員函數(shù)的聲明,也是寫好的;Int.cpp 是空的,有待完成,需要填寫的內(nèi)容主要是 Int
類成員函數(shù)的實現(xiàn),當(dāng)然也要包括必要的頭文件。
Int
類的定義如下
/**
* 這是一個包裝類(wrapper class),包裝類在C++中有點小小的用處(基本上沒用),在Java中的用處更大一些。
*/
#ifndef _INT_H_ //這是define guard
#define _INT_H_ //在C和C++中,頭文件都應(yīng)該有這玩意
class Int{
private://這是訪問控制——私有的
int value; //這是數(shù)據(jù)成員,我們稱Int是基本類型int的包裝類,就是因為Int里面只有一個int類型的數(shù)據(jù)成員
public: //這是公有的
//以下是構(gòu)造函數(shù)的聲明
Int();
Int(Int const&);
Int(int);
//以下是取函數(shù)的聲明
int getValue()const;
};//記住這里有一個分號
#endif
main函數(shù)如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-741929.html
#include "Int.h"
#include <iostream>
using namespace std;
int main(){
int x;
cin >> x;
Int a;
Int b(x);
Int c(b);
cout<<a.getValue()<<" "<<b.getValue()<<" "<<c.getValue()<<endl;
return 0;
}
/********* Begin ********/
#include "Int.h"
Int::Int(){
value = 0;
}
Int::Int(Int const& a){
value = a.value;
}
Int::Int(int v){
value = v;
}
int Int::getValue()const{
return value;
}
/******** End **********/
到了這里,關(guān)于頭歌Educoder實驗:程序設(shè)計二(面向?qū)ο螅實訓(xùn)3_類外定義成員函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!