C++ 生成一个类名\u class并在一个向量中存储两种数据类型
我不知道这是什么意思 Name_值(std::string n,int v) :名称(n),值(v){} 这两条线是如何工作的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
#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);
}