我认为这是儿童问题,但我找不到如何解决它的信息。
//*。H:
class Foo
{
#if defined(RedefChallangesCount)
static const mainDataType ChallangesCount = 500;
#undef RedefChallangesCount
#else
static const mainDataType ChallangesCount = 1;
#endif
...
int _correctAnswers[ChallangesCount];
....
}
在我的 VS 测试类中:
#include "stdafx.h"
#include "CppUnitTest.h"
#define RedefChallangesCount
#include "..\Core\ChallengeManager.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace Brans;
namespace CoreTests
{
TEST_CLASS(SomeTestClass)
{
public:
TEST_METHOD(SomeTestMethod)
{
Foo* cm = new Foo();
cm->Method();
...
delete cm;
}
}
}
在我看来,我在文档中所做的一切都像,但是当使用#define RedefChallangesCount 行运行测试时,我遇到了奇怪的错误,例如“访问冲突读取位置”,有时是错误的数组_correctAnswers。同时,我看到 ChallangesCount 是 500,正如预期的那样。如果我评论 #define RedefChallangesCount 行 - 所有错误都消失了......可能有什么问题?