我已经编写了这段代码,但是当我尝试初始化Critter对象的数组并且不知道它们的含义时遇到了一些错误。
我的代码:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Critter {
private:
    string crName;
public:
    Critter(string = "Poochie");
    string getName() const { return crName; }
};

Critter::Critter(string n) {
    crName = n;
}

int main() {
    Critter c[10] = { "bob","neo","judy","patrik","popo" }; //here
    return 0;
}
错误:
E0415 - no suitable constructor exists to convert from "const char [4]" to "Critter"
...
4 more like this.
该代码适用于 friend 的Visual Studio 2017,但不适用于我的2019版本。
谢谢。

最佳答案



这定义了一个const char *数组。要使用这些字符串初始化Critter数组,请执行以下操作:



[编辑]有人指出,相同的答案最初是在评论中发布的,只是将其隐藏在外部链接中,没有指示其背后的原因,而在发布上述内容之前我没有看到。感谢@drescherjm,所以我将其保留为CW。

关于c++ - 如何初始化对象数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62394106/

10-12 20:25