请大神看看关于C++类的构造函数初始化
#include<iostream>#include<string>
#include<valarray>
//一个包含两个参数的类模板
template<typename T1 , typename T2>
class My_Pair
{
private:
T1a;
T2b;
public:
My_Pair(T1 & avar , T2 & bvar): a(avar) , b(bvar) {} //构造函数
My_Pair();
//返回成员类型的引用 能够通过赋值重新设置存储的值
T1 & First() { return a; }
T2 & Second() { return b; }
T1First() const { return a; }
T2Second() const { return b; }
};
typedefstd::valarray<int> IntArray;
typedefMy_Pair<IntArray , IntArray> PairArray;
// 一个显示葡萄酒名称 年份 和该年生成的瓶数的类
class Wine
{
private:
PairArray W_pai; //用于存储葡萄酒年份和瓶数的对象
std::string W_name; //葡萄酒的名字
public:
//构造函数
Wine(const char & str , const int w_year[] , const intw_bot[] , int n);
};
int main()
{
return 0;
}
Wine::Wine(const char & str , const intw_year[] , const intw_bot[] , int n)
{
IntArray A(w_year , n); //这里初始化报错了 求大神告知这里应该怎么初始化想了半天也没有想出怎么初始化
IntArray B(w_bot , n);
W_pai = PairArray(A , B);
W_name = str;
}
报错内容
|| undefined reference to `My_Pair<std::valarray<int>, std::valarray<int> >::My_Pair()'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
你的My_Pair()没有函数实现。但你 PairArray W_pai;这里又隐式调用了它的默认构造函数
页:
[1]