class MyType
{
public:
A ( unsigned _a ) : a (_a-1)
{
}
operator unsigned& ()
{
return a;
}
operator const unsigned () const
{
return a;
}
unsigned a;
};
在上面的例子中,我创建了一个MyType类,它只包含一个无符号整数。
是否有MyType的设计模式名称?它是无符号整数,可以作为一个整数使用。但只是使用不同的名称
答案 0 :(得分:1)
Bruce Eckel在第354页的Thinking in C++中做了类似的事情,“内置类型”段落的“构造函数”。 这样的设计可能是有用的(如布鲁斯所说),以严格控制封装类型的初始化。 但是我不知道它的名字。
答案 1 :(得分:1)
不知道设计模式名称是什么,但它有用。
如果您有一组所有实现相同成员函数的类,并且您希望以相同的方式处理它们,那么它将非常有用。其中一些类包含简单类型,如int
和unsigned
,而其他类包含更复杂的类/结构类型。
目标是允许“盒装”原始类型像更复杂的“真实”类类型一样运行。当这些类可以全部用作模板类或函数组中的模板参数时(即,当所有类都继承相同的基接口类时),这尤其有用。
答案 2 :(得分:0)
这不是一个已知的设计模式。那段代码有什么意义?它的类型就像无符号整数一样,为什么不使用无符号整数呢?
答案 3 :(得分:0)
根本不是设计模式。 它是一个“成语”,只能在C ++中使用。 设计模式通常与语言无关,可以用支持委托/继承等基本原则的任何语言实现。
答案 4 :(得分:-2)
这根本不是设计模式,因为设计模式描述了几个类之间的交互,而你只有一个。