这是一个工作代码

#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。

10-01 00:28