我有以下代码片段。
template <class T>
void g(T b){
;
}
template <class T>
void h(T b){
;
}
class T{
method X;
method Y;
method Z; //many methods but the implementation of the methods are different from TT
};
class TT{
method X;
method Y;
method Z; //the implementation of the methods are different from T
}
void f(){
if(a==1){
T b; //use type T to define b
} else{
TT b; //use type TT to define b
}
g(b);
h(b);
i(b);// I need to use b for many different functions.
}
我还需要变量b的范围在函数f。
中在T类和TT类中,有很多方法,但方法的实现是不同的。
有什么建议吗?
答案 0 :(得分:1)
使用templates并移动您在f()
内使用b
内DoStuff()
内的代码。
template <class Type>
void DoStuff()
{
Type b; //use type 'Type' to define b
}
void f(){
if(a==1){
DoStuff<T>();
} else{
DoStuff<TT>();
}
}