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) {}