制作一个类Name_class并将两个数据类型存储在一个向量中[重复]

问题描述 投票:0回答:2

此问题已经在这里有了答案:

我不知道的含义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()
{

}
c++
2个回答
0
投票

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

: name(n), value(v)是构造函数初始化列表,您可以在其中初始化类成员变量。在这种情况下,成员namen初始化,并且valuev初始化。

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


0
投票

这里不涉及向量;您将看到类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

© www.soinside.com 2019 - 2024. All rights reserved.