我的类中的第二个参数是一个数组.我不确定如何在主程序中编写

The second parameter in my class is an array. I am not sure how to write in the main Program

本文关键字:不确定 数组 主程序 一个 第二个 参数 我的      更新时间:2023-10-16

在下面的代码中:

#include<iostream>
#include <string>
using namespace std;
class BookType{
private:
    string Title;
    string Authors[4];
    string Authors;
}

这是主要程序:

int main() {
    BookType Book2("Sweet",["lil,lool,lal,ln"],"ssss",29288308.47,8,3,2);
}

我收到此错误:expected primary-expression before '[' token

您正在调用BookType的构造函数,但您没有定义一个。这是一个例子

#include <iostream>
#include <string>
#include <vector>
#include <initializer_list>
class BookType {
public:
    BookType(std::string s1, std::initializer_list<std::string> l, std::string s2, double d, int i1, int i2, int i3): title(s1), authors(l) {}
private:
    std::string title;
    std::vector<std::string> authors;
    std::string Authors;
};
int main() {
    BookType Book2("Sweet",{"lil","lool","lal","ln"},"ssss",29288308.47,8,3,2);
    return 0;
}

我添加了构造函数

BookType(std::string s1, std::initializer_list<std::string> l, std::string s2, double d, int i1, int i2, int i3): title(s1), authors(l) {}

并将您的Authors数组更改为authors std::vector. std::vector更易于处理,可以使用std::initializer_list初始化。此外,还会将std::initializer_list传递给构造函数。 ["lil,lool,lal,ln"]不是数组。