main 方法中的 C++“未定义引用”

C++ “undefined reference to“ in main method

看起来很基础,可能是初学者的错误,但我不明白为什么...

编译时,我从 int main() 得到如下错误: “未定义引用‘Hello::World::PaintService::PaintService()”

paint.cpp

using namespace Hello;
int main(int argc, char **argv) {
    World::PaintService service;
     service.start_painting(argc[1]);

}

PaintService 和 start_painting 定义如下:

paint_service.h

namespace Hello {
namespace World {
    class PaintService {
        public:
            PaintService();
            void start_painting(...);
}; } }

paint_service.cpp

namespace Hello { 
namespace World {
    void start_painting(....) {
        ... //paint
    }
} }

在调用 PaintService 服务后,在另一个 class 中调用 service.start_paint() 之类的启动方法似乎很简单,但有些地方不对。我已经尝试了很多变体但无法弄清楚:-/有人可以指出我做错了什么吗?

谢谢!

要声明方法,您需要包含 class 的名称。

namespace Hello {
namespace World {

void PaintService::start_painting(....) { ... }
void PaintService::PaintService() { ... }

}  // namespace World
}  // namespace Hello

https://repl.it/repls/PunySaneSpools#main.cpp