【專案-兩個成員的類模板】
設有如下的類宣告:
class test
void setdata2(double val)
int getdata1()
double getdata2()
private:
int data1;
double data2;
}
(1)試將此類宣告改為類模板宣告,使得資料成員data1和data2可以是任何型別。
(2)請為該類增預設建構函式、帶兩個引數分別對應兩個資料成員初值的建構函式,以及複製建構函式。
#include
#include
using
namespace
std;
template
class test
void setdata2(t2 val)
t1 getdata1()
t2 getdata2()
private:
t1 data1;
t2 data2;
};int main()
(2)請為該類增預設建構函式、帶兩個引數分別對應兩個資料成員初值的建構函式,以及複製建構函式。
#include
#include
using namespace std;
template
t1,class
t2>
class
test
void setdata2
(t2val)
t1getdata1
()
t2getdata2
()
private:
t1 data1;
t2 data2;
};template t1,class
t2>
test
::test
() {}
template t1,class
t2>
test
::test
(t1d1, t2
d2):
data1(d1),data2(d2) {}
template t1,class
t2> template u,class
v>
test
::test
(const
test
&t):
data1(t.data1),data2(t.data2) {};
int main()
會在testdd(d);
一句發生錯誤。原因是正在建立的dd,與為其初始化的d並不是同乙個型別的物件(實際成員型別不同)。提示的錯誤是data1和data2是私有的。
將出錯的這一句改為testdd(d);
一切正常。想一想,是有道理的。
c 實踐參考 兩個成員的類模板
all right reserved.檔名稱 test.cpp 完成日期 2016年6月20日 版本號 v1.0 問題描述 試將此類宣告改為類模板宣告,使得資料成員data1和data2可以是任何型別。程式輸入 程式輸出 知識點總結 由於類模板包含型別引數,因此又稱為引數化的類。如果說類是物件的抽象...
C 實踐參考 兩個成員的類模板
專案 兩個成員的類模板 設有如下的類宣告 class test void setdata2 double val int getdata1 double getdata2 private int data1 double data2 1 試將此類宣告改為類模板宣告,使得資料成員data1和data2...
c 實踐參考 兩個成員的類模板(二)
all right reserved.檔名稱 test.cpp 完成日期 2016年6月20日 版本號 v1.0 問題描述 請為該類增預設建構函式 帶兩個引數分別對應兩個資料成員初值的建構函式,以及複製建構函式。程式輸入 程式輸出 知識點總結 和使用類一樣,使用類模板時要注意其作用域,只能在其有效作...