請問,c++中模板類的引數可以是自己寫的類嗎?自己定義的類A,B里面的成員函式和變數是不是必須都要保持一致?為什么?
例如
class A
{
public:
int test();
...
private:
int qwe;
....
}
class B
{
public:
int test();
...
private:
int qwe;
....
}
A a;
B b;
text(a,y);
...
text(b,y);
template<typename T>
BOOL text(T &x,short &y)
{
...
}
uj5u.com熱心網友回復:
可以自定義 的uj5u.com熱心網友回復:
傳遞引數(類)是可以自定義的 。不需要保持一致uj5u.com熱心網友回復:
感謝回答是不是只要保證在模板類的實作中 x 所涉及到的 函式和變數 在 class A 和 class B 中存在且一致就可以了把? class A class B 其余的成員函式和變數是否一致是不是就無所謂了?假如class A 中有個成員函式,class B 中沒有,在模板類的實作中呼叫了此函式,是不是編譯都無法通過?(我試了是無法通過,但不確定,為什么在編譯的時候就能發現錯誤呢?是因為編譯的程序就把 a和b 作為引數傳進去了嗎?我還以為會在除錯的程序中,當 b 作為引數傳進去才會報錯呢,能講講為什么編譯就會出錯嗎?(模板類的實作寫在 .h 檔案中了,想試著寫在.cpp檔案中,試了網上的方法沒成功,可能是我哪里寫的不對))
望指教
template<typename T>
BOOL text(T &x,short &y)
{
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252767.html
標籤:C++ 語言
上一篇:c語言新手請教——實作字串連接
