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

标签 c++ type-conversion operator-overloading

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

operator int();

在我的cpp文件中:

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

如果我在 H 文件中实现该功能,它就可以工作,但我不想那样做。
谁能帮忙?

最佳答案

我还想将类声明与实现分开。关键缺失的成分是 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

关于c++ - 如何在头文件中声明类型转换并在cpp文件中实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015624/

相关文章:

ubuntu 上 QtCreator 3.5.0 中的 C++11

c++ - 在 C++ 中,如何确定一个类是否是继承链中的最后一个类/子类?即在基类的另一端

c# - 将非常小的数字字符串转换为十进制

字符串到整数 Smalltalk

c++ - << 的运算符重载需要 const;产生头痛

c++ - stereoCalibrate() 改变焦距,即使它不应该改变

c++ - virtual void foo(...) = 0; 中的 "..."是什么意思?

c# - 为什么 null 不评估为 false?

c++ - 类的运算符 << 重载

c++ - 覆盖类型数组的下标/运算符[]