如何在C ++中定义不同的类型变量?

时间:2013-03-19 15:29:48

标签: c++

我有以下代码片段。

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类中,有很多方法,但方法的实现是不同的。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用templates并移动您在f()内使用bDoStuff()内的代码。

template <class Type>
void DoStuff()
{
  Type b;  //use type 'Type' to define b      
}

void f(){

  if(a==1){
    DoStuff<T>();
  } else{
    DoStuff<TT>();
  }

}