C 實踐參考 兩個成員的類模板

2021-07-12 02:27:10 字數 1506 閱讀 3359

【專案-兩個成員的類模板】

設有如下的類宣告:

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 問題描述 請為該類增預設建構函式 帶兩個引數分別對應兩個資料成員初值的建構函式,以及複製建構函式。程式輸入 程式輸出 知識點總結 和使用類一樣,使用類模板時要注意其作用域,只能在其有效作...