【发布时间】:2014-06-17 15:53:27
【问题描述】:
伙计们,我遇到了一个奇怪的问题,它一直工作正常,但突然搞砸了 这是问题所在。我有 test.h 和 test.cc 和 mainP.cc。
在 mainP.cc 中:
#ifndef test_H
#include "test.h"
#endif
在 test.h 中:
#ifndef test_H
#define test_H
在 test.cc 中:
#ifndef test_H
#include "test.h"
#endif
现在当我说测试 tInstance;它给了我对 test::test() 的未定义引用; 我检查了我的定义。构造是公开的。在我看来一切都很好。我不确定我错了什么?我用g++编译它。
【问题讨论】:
-
test.h 不是缺少
#endif吗?在任何情况下,从 .cc 文件中删除#ifdef,包含保护应该只在标题中。 -
不要在
#include "test.h"的文件中使用包含保护 - 仅在test.h本身中有包含保护。尽管我怀疑这与您的问题有关。我认为您提供的信息不足以让任何人帮助您解决问题。