Как объявить преобразование типа в заголовочном файле и реализовать в файле cpp? - PullRequest
6 голосов
/ 10 июня 2010

у меня не работает.
у меня есть заголовочный файл и файл cpp.
Мне нужно определить оператор преобразования из моего класса в INT, но он дает мне «синтаксическую ошибку» при объявлении его в файле H и реализации в файле cpp может я неправильно понял синтаксис? в файле H у меня в "public":

operator int();

и в файле cpp у меня есть:

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

если я реализую функцию в файле H, она работает, но я не хочу этого делать.
кто-нибудь может помочь?

1 Ответ

2 голосов
/ 20 января 2017

Я также хотел отделить объявление класса от реализации. Критически недостающим ингредиентом был const:

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

        operator int() const;

    private:

        int _v;
};

А затем в файле реализации:

#include "Foobar.hpp"

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

См. ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...