如何在头文件中声明类型转换并在cpp文件中实现?

时间:2010-06-10 15:03:37

标签: c++ operator-overloading

它对我不起作用。
我有一个头文件和一个cpp文件 需要在我的类中定义转换运算符到INT,但在H文件中声明它并在cpp文件中实现时,它会给我“语法错误”。也许我的语法错了? 在H文件中我有“公共”:

operator int();

并在cpp文件中我有:

A::operator int() { return mNumber ;}

如果我在H文件中实现它的功能,但我不想这样做。
有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

我还想将类声明与实现分开。关键的缺失成分是const

// Foobar.hpp
class Foobar
{
    public:
        Foobar() : _v(42) {}

        operator int() const;

    private:

        int _v;
};

然后在实现文件中:

#include "Foobar.hpp"

Foobar::operator int() const
{
    return _v;
}

请参阅此reference