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
看起来很基础,可能是初学者的错误,但我不明白为什么...
编译时,我从 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