我已经编写了这段代码,但是当我尝试初始化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/