相关疑难解决方法(0)

用户定义的C++转换

最近,我浏览 O'Reilly Media 的C++ Pocket Reference副本,当我遇到一个关于用户定义类型的用户定义转换的简短部分和示例时,我感到很惊讶:

#include <iostream>

class account {

    private:
        double balance;

    public:
        account (double b) { balance = b; }

        operator double (void) { return balance; }
};

int main (void) {

    account acc(100.0);
    double balance = acc;

    std::cout << balance << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我用C++编程了一段时间,这是我第一次看到这种运算符重载.这本书对这个主题的描述有些简短,给我留下了一些关于这个功能的未解答的问题:

  • 这是一个特别模糊的功能吗?正如我所说,我已经用C++编程了一段时间,这是我第一次遇到这个问题.我没有太多运气找到更深入的材料.
  • 这相对便携吗?(我正在编写GCC 4.1)
  • 是否可以完成用户定义的用户定义转换?例如

    operator std :: string(){/*code*/}

c++ operator-keyword

9
推荐指数
2
解决办法
4607
查看次数

标签 统计

c++ ×1

operator-keyword ×1