typedef Pair<ArrayInt, ArrayInt> PairArray中的PairArray对象data初始化
typedef Pair<ArrayInt, ArrayInt> PairArray中的PairArray对象data初始化template<class T1, class T2>
class Pair
{
private:
T1 a;
T2 b;
public:
Pair(const T1 & aval, const T2 & bval) : a(aval), b(bval) { }
Pair() {}
}
class Wine
{
private:
typedef valarray<int> ArrayInt;
typedef Pair<ArrayInt, ArrayInt> PairArray;
string label;
int years;
PairArray data;
public:
Wine() : label("none"), years(0), data(ArrayInt(),ArrayInt()) {}//1
Wine::Wine(const char * l, int y, const int yr[], const int bot[]): label(l), years(y), data(ArrayInt(yr,y),ArrayInt(bot,y) {}//2
Wine(const char * l, const PairArray & yr_bot);
Wine(const char * l, int y);
};
//1中为什么PairArray的对象data要这样data(ArrayInt(),ArrayInt())在初始化列表中初始化,为什么要带ArrayInt()这个类型参数?
//2中为什么PairArray的对象data为什么要data(ArrayInt(yr,y),ArrayInt(bot,y) )初始化,能不带参数类型而date((yr,y),(bot,y))吗?我搞不懂为什么要带个ArrayInt的参数类型?
请高手们回答的详细点啊~谢谢啊