C++ 生成一个类名\u class并在一个向量中存储两种数据类型

C++ 生成一个类名\u class并在一个向量中存储两种数据类型,c++,C++,我不知道这是什么意思 Name_值(std::string n,int v) :名称(n),值(v){} 这两条线是如何工作的 #include "std_library_facilities.h" void error(std::string b) { throw std::runtime_error(b); } class Name_value { public: std::string name; int value; Name_value(std::s

我不知道这是什么意思 Name_值(std::string n,int v) :名称(n),值(v){} 这两条线是如何工作的

#include "std_library_facilities.h"

void error(std::string b)
{
    throw std::runtime_error(b);
}

class Name_value
{
public:
    std::string name;
    int value;
    Name_value(std::string n, int v)
        :name(n), value(v) { }
};


int main()
{

}
Name\u value(std::string n,int v)
Name\u value
的构造函数,包含两个参数(
n
v

:name(n),value(v)
是初始化类成员变量的构造函数初始化列表。在这种情况下,成员
name
n
初始化,
value
v
初始化


{}
位是构造函数的主体-它是空的,因为除了初始化(已经完成)之外,不需要为此构造函数执行任何操作。

这里不涉及向量;您看到的是类的声明
Name\u value
及其
Name\u value::Name\u value(std::string,int)

构造函数是一个非常基本的东西,在C++中做任何事情之前,你都必须了解它。p> 构造函数是一个特殊的类成员,用于设置该类类型的新对象。在本例中,构造函数的定义(在类定义中内联声明)

将任何新的
Name\u值
对象的
Name
成员设置为
n
的值,并将其
成员设置为
v

因此,如果您的
main
包含如下内容

int main()
{
 Name_value n ("foo", 8);
}
然后
n.name
将被设置为包含“foo”的
std::string
,而
n.value
将被设置为
8

int main()
{
 Name_value n ("foo", 8);
}