小编Asu*_*Asu的帖子

(涉及显式)优先级与运算符和构造函数转换

我浏览了很多与转换相关的问题,但似乎没有人以这种方式讨论显式关键字.这是代码:

struct B;
struct A{
    /*explicit*/ A(const B&){ cout << 1; }  // *1
};
struct B{
    /*explicit*/ operator A()const{ cout << 2; } // *2
};

void foo(const A &){}

int main(void){
    B b;
    foo( /*static_cast<A>*/ (b) ); // *3
}
Run Code Online (Sandbox Code Playgroud)

结果:(Y:未注释,N:注释,X:或者)

# | *1 | *2 | *3 |output|  
1 |  N |  N |  N |error |
2 |  N |  N |  Y |  1   |
3 |  N |  Y |  N |  1   | …
Run Code Online (Sandbox Code Playgroud)

c++ explicit type-conversion

7
推荐指数
1
解决办法
66
查看次数

标签 统计

c++ ×1

explicit ×1

type-conversion ×1