gpt4 book ai didi

C++头文件包含错误

转载 作者:行者123 更新时间:2023-11-30 02:08:29 24 4
gpt4 key购买 nike

我有一个 header “myHeaderFile.h”文件,如下所示,发布 exe 和单元测试 exe 使用它。

#ifndef MYHEADERFILE_H
#define MYHEADERFILE_H

namespace myname1
{
namespace myname2
{
class A
{
...
};
#ifdef MYTESTCLASS
class TestABase
{
...
}
#endif
}
}
#endif

现在我们有单元测试文件 myUnitTest.h 文件如下

#ifndef MYUNITEST_H
#define MYUNITTEST_H

#ifndef MYTESTCLASS
#define MYTESTCLASS 1
#endif
#include "myHeaderFile.h"
class TestClass : public myname1::myname2::TestABase
{
...
};
#endif

现在在 myUnitTest.cpp 中我有以下内容

#include "myUnitTest.h"

// Definition stuff.

当我编译时出现错误 C2039: TestABase: is not member of myname1::myname2'myUnitTest.h(31): error C2504: TestABase: 基类未定义

是什么导致了上述错误?请帮助我解决上述错误。注意:myHeaderFile.h 来自库,因此我无法更改此头文件。

谢谢!

最佳答案

您需要在 myUnitTest.h 中包含 myHeaderFile.h。在 block 之后执行此操作:

#ifndef MYTESTCLASS
#define MYTESTCLASS 1
#endif

编辑

因为这没有帮助,所以 MYTESTCLASS 定义可能有问题。您是否在其他任何地方包含了 myHeaderFile.h?也许您可以尝试在编译器选项中而不是在 myUnitTest.h 头文件中定义 MYTESTCLASS。也许您可以删除 #ifdef MYTESTCLASS 检查以查看是否是问题所在。

关于C++头文件包含错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6742990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com