尝试使用变量名实例化C++中的类成员

Mar*_*ero 0 c++ class

我正在为课程编写一个程序,要求我们创建一类"书".然后我们应该根据用户的要求创建该类的新实例化.我是C++的新手,所以我试图将其编码,但遇到了问题.

主要问题是如果我不知道有多少我必须提前做,我如何用变量实例化一个类.用户可以要求添加1本书或1000本.我正在查看这个基本代码:

这是我开始使用的简单代码.我希望有一个索引int保持一个数字,并让我创建的书类由该int调用(0,1,2等等...)所以我试图将传入的索引int转换为字符串,但我'有点卡在这里.

void addBook(int index){
    string bookName;
    std::stringstream ss;
    ss << index;

    book bookName;

    cout << "Enter the Books Title: ";
    cin >> bookName.title; 
}
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用,因为"bookName"是计算机的字符串,而不是我试图创建的类成员.

我在网上和我的文本中看到的所有教程都显示了在代码中使用名称实例化的类,但我不知道如何使其变量,因此我可以创建用户可能需要的任何数量的"书籍" .任何有关这方面的见解将不胜感激.感谢您的时间.

Mat*_*tis 6

鉴于您的类型book,如果您想创建一个书籍列表,请尝试使用像std::vector,std::liststd::deque.

typedef std::vector<book> library_type;

library_type library;

book catch22("Catch 22")
library.push_back(catch22);

book haltingState("Halting State");
library.push_back(haltingState);
Run Code Online (Sandbox Code Playgroud)

您可以创建书籍并从循环中添加到库中,这听起来像您想要的.

您选择的容器类型取决于您想要的访问模式.例如,std::vector如果您想要添加这样的书籍,并且很少想要以任意顺序删除它们,那么这样做很好.如果你改变主意,那么在以后更改类型是相当简单的.