生成一个类Name_class并将两种数据类型存储在一个向量中

making a class Name_class and storing two data types in a single vector

本文关键字:一个 数据类型 两种 存储 向量 Name class      更新时间:2023-10-16

我不知道 名称值(std::string n,int v(:name(n(,value(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_value及其构造函数Name_value::Name_value(std::string, int)的声明。

构造函数是一个非常基本的东西,在你用C++做任何事情之前,你必须了解它。

构造函数是一个特殊的类成员,用于设置该类类型的新对象。在这种情况下,构造函数的定义(在类定义中内联声明(

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

将任何新的Name_value对象的name成员设置为值n,并将其value成员设置为v

所以,如果你的main包含类似的东西

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

n.name将被设置为包含"foo"的std::string,并且n.value将被设置成8

Name_value(std::string n, int v)Name_value的构造函数,采用两个参数(nv(。

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

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

相关文章: