Typedef具有特定构造函数参数的类

时间:2012-03-15 11:51:12

标签: c++ typedef

让我们从C ++中的一个简单类开始:

class aClass {
        bool b;
        aClass(bool x){b=x;} 
};

是否可以输入2个新类型stateTrue和stateFalse,以便我这样做:

stateTrue variable;

它会转化为:

aClass  variable(true); 

3 个答案:

答案 0 :(得分:5)

继承的替代方法可以是aClass template

template <bool T>
class aClass
{
public:
    bool b;
    aClass(): b(T) {}
};

typedef aClass<true>  stateTrue;
typedef aClass<false> stateFalse;

答案 1 :(得分:0)

不,因为那是一个实例,而不是一个类型。

你可以推导出:

class stateTrue: public aClass {
public:
    stateTrue() : aClass(true) {}
};

答案 2 :(得分:0)

最接近的是

class stateTrue : // new type needed, not just a new name
  public aClass { // but obviously can be converted to aClass
  public: stateTrue() : aClass(true) { } // Default ctor sets aClass base to true
};