2010-06-02 51 views
2

在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; 
} 

回答

6

它通常被称为转换函数。它本身不是隐式转换,但允许隐式转换为目标类型。

编辑:只是检查确定 - 标准的§12.3.2使用短语“转换功能”。

EDIT2:我在正式标准,这是不检查(至少应该是)免费提供的(尽管你可以从ISO或大多数成员的标准组织购买如ANSIBSI等)很多人喜欢省钱并使用免费的final committee draft

+0

你在哪里检查,你可以发布链接? – LoudNPossiblyWrong 2010-06-02 15:09:47

1

这通常被称为转换操作符

0

当调用func(beta)对象beta隐式转换键入ALPHA。这是唯一可能的,因为你已经实施了operator ALPHA()

相关问题