C中的嵌套隐式转换

C中的嵌套隐式转换,第1张

概述我希望在两个级别进行隐式转换.以下代码片段是我面临的问题的原型. //Sourcesclass A{public: void print() { std::cout <<"Class A"<< std::endl; } operator int() { return 1; }};class B{pub 我希望在两个级别进行隐式转换.以下代码片段是我面临的问题的原型.

//Sourcesclass A{public:    voID print()    {        std::cout <<"Class A"<< std::endl;    }    operator int()    {        return 1;    }};class B{public:    voID print()    {        std::cout <<"Class B"<< std::endl;    }    operator A()    {        return A();    }};class C{public:    voID print()    {        std::cout <<"Class C"<< std::endl;    }    operator B()    {        return B();    }};voID print_(A a){    a.print();}//driverint main( int argc,char* argv[] ){    C c;    //print_( c ); // compilation error    //print_( C() ); // compilation error       print_( c.operator framework::configuration::B() ); //when explicitly invoked it worked     return 0;}

我查看了以下链接中提供的示例,确信这是可以实现的.

How do conversion operators work in C++?

Operator overloading

解决方法 该标准仅允许一个涉及用户定义类型的隐式转换.你有两个,因此编译错误.

见12.3 / 4

At most one user-defined conversion (constructor or conversion function) is implicitly applIEd to a single value.

总结

以上是内存溢出为你收集整理的C中的嵌套隐式转换全部内容,希望文章能够帮你解决C中的嵌套隐式转换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1215223.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存