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

时间:2016-06-29 18:58:14

标签: c++

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

1 个答案:

答案 0 :(得分:2)

明显但烦人的问题。

  1. typename中缺少operator T()

    template <T>
    operator T();
    

    需要

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

    class Foo更改为struct Foo或将功能设为public

  3. 在课程定义的末尾缺少;

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

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