gpt4 book ai didi

c++ - 使用头文件的静态方法c++的GoogleTest

转载 作者:行者123 更新时间:2023-11-28 06:54:10 24 4
gpt4 key购买 nike

所以我需要使用 gTest。

我有一个带有静态函数的 util 类。

头文件包含函数的声明:

class a
{
public:
a();
virtual ~a();

static bool test();
}

在cpp文件中的实现:

a::a() { }
a::~a() { }
bool a::test() { return true; }

在测试单元文件上我刚刚添加了一个测试:

TEST(a, a)
{
EXPECT_EQ(true,a::test());
}

我收到链接器错误:

Error   3   error LNK2001: unresolved external symbol "public: static bool __cdecl a::test()" (?test@a@@SA_NIPAD0@Z)    UnitTest.obj    UnitTest

如果静态函数的实现在 .h 文件中,一切都会顺利进行。

有没有办法以这种方式对静态函数进行 uni 测试?

最佳答案

目前,您实现的 test() 没有返回类型。有时可能会被解释为默认 int。通过更改此添加类型:

a::test() { return true; }

进入这个:

bool a::test() { return true; }

然而,编译器没有早点提示似乎很奇怪。编译后的文件仍有可能没有正确链接。

先尝试更改代码。

关于c++ - 使用头文件的静态方法c++的GoogleTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23381736/

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