我在创建以下类型的对象时遇到问题:

struct wordType
{
   string word  = "";
   int    count = 0;
};

wordType object("hello world");

我得到的错误是:
[Error] no matching function for call to 'wordType::wordType(std::string&)

最佳答案

您正在尝试使用 wordType 没有的构造函数构造 wordType 对象。您可以将该构造函数添加到您的代码中:

struct wordType
{
  string word = "";
  int count = 0;

  wordType() = default;
  wordType(const wordType&) = default;

  wordType(const string &aword) : word(aword) {}  // <-- here
};

wordType object("hello world");

或者,您可以使用没有任何构造函数参数的局部变量,然后再填充它:
struct wordType
{
  string word = "";
  int count = 0;
};

wordType object;
object.word = "hello world";

关于c++ - 为什么我不能用这个构造函数参数构造这个用户定义类型的对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39580189/

10-11 16:24