此问题已经在这里有了答案:
我不知道的含义Name_value(std :: string n,int v):name(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_value(std::string n, int v)
是Name_value
的构造函数,带有两个参数(n
和v
)。
: name(n), value(v)
是构造函数初始化列表,您可以在其中初始化类成员变量。在这种情况下,成员name
从n
初始化,并且value
从v
初始化。
{ }
位是构造函数的主体,它为空,因为对此构造函数除初始化(已完成)外不需要执行任何其他操作。
这里不涉及向量;您将看到类Name_value
及其constructor 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
。