这是一个工作代码
#include "quickfix/FixFields.h"
#include "quickfix/Values.h"
int main()
{
FIX::BeginString beginString(FIX::BeginString_FIX42);
return 0;
}
它会编译,如果我打印beginString的值,则会得到预期的结果。
现在我想实现一个具有相同类型的类
#include "quickfix/FixFields.h"
#include "quickfix/Values.h"
class A {
FIX::BeginString beginString;
public:
A()
{
beginString = FIX::BeginString_FIX42;
}
};
int main()
{
return 0;
}
此代码无法编译,编译错误是
test.cpp: In constructor ‘A::A()’:
test.cpp:9:17: error: no match for ‘operator=’ (operand types are ‘FIX::BeginString’ and ‘const char [8]’)
beginString = FIX::BeginString_FIX42;
^
知道发生了什么问题以及如何解决吗?
最佳答案
FIX :: BeginString_FIX42是我猜的常量。当您再次定义一个函数时,我想您想这样做,您需要指定值的类型而不是值。 BeginString是一种类型BeginString_FIX42是一个常量,它告诉begin字符串返回哪个版本的begin。