繁体   English   中英

如何在C ++中定义默认的类型转换运算符

[英]How to define a default typecast operator in C++

我为几种类型重载了typecast运算符。 现在,我想为所有其他类型转换调用特定函数。 我该怎么做?

明显但烦人的问题。

  1. operator T()缺少typename

     template <T> operator T(); 

    需要是

     template <typename T> operator T(); 
  2. 访问问题。

    更改class Foostruct Foo或将功能public

  3. 失踪; 在类定义的末尾。

主要问题是您无法专门化成员函数模板。 但是,您可以使它们过载,效果相同。

struct Foo {
    template <typename T>
    operator T();

    operator int();

    operator char();
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM