Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试在C+;中实例化类成员+;使用变量名_C++_Class - Fatal编程技术网

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

C++ 尝试在C+;中实例化类成员+;使用变量名,c++,class,C++,Class,我正在为这个类编写一个程序,要求我们创建一个“book”类。然后,我们应该根据用户的要求创建该类的新实例化。我是C++新手,所以我试图把它编码出来,但是我遇到了一个问题。p> 主要的问题是,如果我不知道要提前做多少,如何用变量实例化一个类。用户可以要求添加1本书或1000本书。我正在查看以下基本代码: 这是我开始使用的简单代码。我想让一个索引int保留一个数字,并让我创建的book类由该int(0、1、2等)调用,所以我尝试将传入的索引int转换为字符串,但我有点被卡住了 void addBoo

我正在为这个类编写一个程序,要求我们创建一个“book”类。然后,我们应该根据用户的要求创建该类的新实例化。我是C++新手,所以我试图把它编码出来,但是我遇到了一个问题。p> 主要的问题是,如果我不知道要提前做多少,如何用变量实例化一个类。用户可以要求添加1本书或1000本书。我正在查看以下基本代码:

这是我开始使用的简单代码。我想让一个索引int保留一个数字,并让我创建的book类由该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; 
}
void addBook(int索引){
字符串书名;
std::stringstream-ss;
ss bookName.title;
}
但很明显,这不起作用,因为“bookName”是计算机的字符串,而不是我试图创建的类成员


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

鉴于您的类型
图书
,如果您想创建图书列表,请尝试使用类似
std::vector
std::list
std::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);
typedef std::vector library\u type;
图书馆型图书馆;
《第二十二条军规》(“第二十二条军规”)
图书馆。推回(22);
账面暂停状态(“暂停状态”);
库。推回(停止状态);
您可以创建书籍并从循环中添加到库中,这听起来像是您想要的


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

鉴于你的类型
book
,如果你想创建一个图书列表,试着使用一个容器,比如
std::vector
std::list
std::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);
typedef std::vector library\u type;
图书馆型图书馆;
《第二十二条军规》(“第二十二条军规”)
图书馆。推回(22);
账面暂停状态(“暂停状态”);
库。推回(停止状态);
您可以创建书籍并从循环中添加到库中,这听起来像是您想要的


容器类型的选择将取决于所需的访问模式。例如,如果您想添加这样的书籍,并且很少想以任意顺序删除它们,那么
std::vector
就很好了。如果您以后改变主意,那么更改类型是非常简单的。

正如Matt前面提到的,您要做的是创建一个名为book first的类。在构造函数中,可以设置各种参数,如标题、作者、ID或任何需要的参数。类似于(注意,编译器知道将参数分配给类成员变量,即使它们具有相同的名称):

你的班级看起来像这样:

class Book
{

private:
int ID;
std::string name;

public:
//constructor, etc.
};

同样,如前所述,向量可能是一个很好的首选,除非您需要一些特定的功能。对于您的输入,如果用户至少要输入一本书,请尝试执行do…while循环。

如上所述,您要做的是创建一个名为book first的类。在构造函数中,可以设置各种参数,如标题、作者、ID或任何需要的参数。类似于(注意,编译器知道将参数分配给类成员变量,即使它们具有相同的名称):

你的班级看起来像这样:

class Book
{

private:
int ID;
std::string name;

public:
//constructor, etc.
};

同样,如前所述,向量可能是一个很好的首选,除非您需要一些特定的功能。对于您的输入,如果用户至少要输入一本书,请尝试do…while循环。

我建议您阅读有关构造函数的内容。构造函数可以将字符串作为参数。我建议您阅读有关构造函数的内容。构造函数可以将字符串作为参数。这些解决方案看起来应该有效。这是我们的第一个项目,我们应该只使用到目前为止所学的内容,我们还没有涉及向量、列表或队列。我会挖得更深。谢谢你的意见。这些解决方案看起来应该能奏效。这是我们的第一个项目,我们应该只使用到目前为止所学的内容,我们还没有涉及向量、列表或队列。我会挖得更深。谢谢你的输入。我为我对C++的新感到抱歉,但它是用来创建类实例的方法的代码块的顶部吗?我对它的结构有点困惑,因为我们还没有在课堂上讨论这个问题。是的,确实是这样。它被称为构造函数,通常位于类的公共区域。现在,带有冒号--:ID(ID),name(name)的部分称为初始值设定项列表。基本上,它所做的只是将发送给它的参数分配给类的成员变量。使用它还有其他一些好处,但最好等到以后再说。要使用它,只需创建一个book对象,如下所示:book book(827,“如何吃蛋糕”);这将发送827作为ID,“如何吃蛋糕”作为名称。希望对你有所帮助!我对C++是新的表示歉意,但它是用来创建类实例的方法的代码块的顶部吗?我对它的结构有点困惑,因为我们还没有在课堂上讨论这个问题。是的,确实是这样。它被称为构造函数,通常位于类的公共区域。现在,带有冒号--:ID(ID),name(name)的部分称为初始值设定项列表。基本上,它所做的只是将发送给它的参数分配给类的成员变量。有