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

发布于 2024-09-05 07:11:48 字数 311 浏览 3 评论 0原文

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

operator int();

在 cpp 文件中,我有:

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

如果我在 H 文件中实现该函数,它就可以工作,但我不想这样做。
有人可以帮忙吗?

it doesn't work for me.
i have a header file and a cpp file.
need to define a conversion operator from my class to INT, but it gives me "syntax error" when declaring it in the H file and implementing in the cpp file. maybe i got the syntax wrong?
in the H file i have in "public":

operator int();

and in the cpp file i have:

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

if i implement the function in the H file it works, but i don't want to do that.
can anyone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鲸落 2024-09-12 07:11:48

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

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

        operator int() const;

    private:

        int _v;
};

然后在实现文件中:

#include "Foobar.hpp"

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

请参阅此 参考

I also wanted to separate the class declaration from the implementation. The critical missing ingredient was the const:

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

        operator int() const;

    private:

        int _v;
};

And then in the implementation file:

#include "Foobar.hpp"

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

See this reference

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文