c ++社区中是否有此类转换的名称或术语? 有没有人看到这种转换被称为“隐式转换”?
class ALPHA{};
class BETA{
public:
operator ALPHA(){return alpha;}
private:
ALPHA alpha;
};
void func(ALPHA alpha){}
int main(){
BETA beta;
func(beta);
return 0;
}
答案 0 :(得分:6)
通常称为转换功能。它本身不是隐式转换,但允许隐式转换为目标类型。
编辑:只是检查确定 - 标准的§12.3.2使用短语“转换功能”。
Edit2:我检查了官方标准,这个标准不是(至少应该是)免费提供(尽管你可以从ISO或大多数成员标准组织购买,例如ANSI ,BSI等等。很多人都喜欢省钱并使用免费的final committee draft。
答案 1 :(得分:1)
通常称为转换运算符。
答案 2 :(得分:1)
隐式转换通常被称为强制。
答案 3 :(得分:0)
调用func(beta)
对象beta
隐式转换到ALPHA
类型。这是唯一可行的,因为您已实施operator ALPHA()
。