【发布时间】:2014-11-07 18:18:06
【问题描述】:
我正在尝试构建模板类型的向量,但不断收到错误
template<class T>
struct s{
T val;
public:
s(T a)
{
val = a;
};
friend ostream& operator<<(ostream& os, const T& a);
};
template <typename T>
ostream& operator<< (ostream& os, const T& a){
return os << a.val;
}
int main()
{
s <double> names(4) ;
s <int> figure(7);
s <string> word();
s <vector<int>*> arrays();
cout << names << endl;
cout << figure << endl;
cout << arrays << endl;
return 0;
}
我一直收到同样的错误 -
request for member 'val' in 'a', which is of non-class type 's<std::vector<int>*>()'|
任何建议将不胜感激
【问题讨论】:
-
对于初学者,您的结构没有默认构造函数。你应该通过 const 引用传递参数。
-
哪些参数?那些进入数据类型初始化?
标签: c++ class templates vector