【发布时间】:2021-01-28 10:58:12
【问题描述】:
它看起来很基本,可能是由于初学者的错误,但我不知道为什么......
编译时,我从 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 服务后,在另一个类中调用 service.start_paint() 之类的 start 方法似乎很简单,但出现了问题。我尝试了很多变化,但无法弄清楚:-/ 有人能指出我做错了什么吗?
谢谢!
【问题讨论】:
-
您的
paint.cpp和paint_service.cpp中是否有您没有提及的#include "paint_service.h"? -
编辑 argc[1] 到 argv[1]
-
相关答案:stackoverflow.com/a/12574407/962089。 this answer 也可能与您的构造函数相关。
-
@nathan pierson 是的,他们都将paint_service.h 作为标题。
-
@whoami 打错字了!谢谢!
标签: c++ function class namespaces