这个转换叫什么?

时间:2010-06-02 14:51:11

标签: c++ terminology

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

4 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:1)

通常称为转换运算符

答案 2 :(得分:1)

隐式转换通常被称为强制

答案 3 :(得分:0)

调用func(beta)对象beta 隐式转换ALPHA类型。这是唯一可行的,因为您已实施operator ALPHA()