Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 请解释以下C++;类定义_C++_Constructor - Fatal编程技术网

C++ 请解释以下C++;类定义

C++ 请解释以下C++;类定义,c++,constructor,C++,Constructor,或: 名称空间std{ 模板 结构对{ //键入值的名称 类型定义T1第一个_类型; typedef T2秒_型; //成员 T1优先; T2秒; /*默认构造函数-T1()和T2()强制初始化内置类型*/ pair():第一个(T1()),第二个(T2()){} //两个值的构造函数 成对(常数T1&a,常数T2&b):第一(a),第二(b){} //使用隐式转换复制构造函数 模板 配对(constpair&p):第一(p.first),第二(p.second){} }; .... } 我不

或:

名称空间std{
模板
结构对{
//键入值的名称
类型定义T1第一个_类型;
typedef T2秒_型;
//成员
T1优先;
T2秒;
/*默认构造函数-T1()和T2()强制初始化内置类型*/
pair():第一个(T1()),第二个(T2()){}
//两个值的构造函数
成对(常数T1&a,常数T2&b):第一(a),第二(b){}
//使用隐式转换复制构造函数
模板
配对(constpair&p):第一(p.first),第二(p.second){}
};
....
}
我不理解构造函数,复制这两个类的构造函数。 请给我解释一下“:m_n(n)”部分是做什么的

称为成员初始化列表。

在类构造函数的定义中,它为直接和虚拟基子对象以及非静态数据成员指定初始值设定项

例如:

A (int n = 0) : m_n(n) {}
//           ^^^^^^^^^^
这里,
A
类的构造函数使用
n
初始化
m\u n

看一看

namespace std {
    template <class T1, class T2>
    struct pair {
        //type names for the values
        typedef T1 first_type;
        typedef T2 second_type;
        //member
        T1 first;
        T2 second;
        /* default constructor - T1 () and T2 () force initialization for built-in types */
        pair() : first(T1()), second(T2()) {}
        //constructor for two values
        pair(const T1& a, const T2& b) : first(a), second(b) {}
       //copy constructor with implicit conversions
        template<class U, class V>
        pair(const pair<U,V>& p) : first(p.first), second(p.second) {}
    };
    ....
}
A (int n = 0) : m_n(n) {}
//           ^^^^^^^^^^
A (int n = 0) : m_n(n) {}