int miniVector<T>::fill_vector(miniVector<T> &obj)
{
int numofelements;
cout << "For how many objects do you want to enter value<s>? ";
cin >> numofelements;
obj.resize(numofelements);
int i;
for(i = 0; i < numofelements; i++)
{
cin >> obj[i];
obj.push_back(i);
}
return i;
}
int main()
{
miniVector<int> v;
cout << "int vector: " << endl;
//fill_vector();
int sizearray;
sizearray = fill_vector<int>(v);
sizearray = v.size();
//display_vector(v, sizearray);
return 0;
}
很奇怪为什么我一直收到错误消息idnetifier“fill_vector未定义。
答案 0 :(得分:0)
fill_vector是类miniVector的成员函数。因此,您必须在此语句中指定要为其调用成员函数的对象(如果成员函数是非静态的)或类名称(如果成员函数是静态的)
sizearray = fill_vector<int>(v);
此调用也是错误的,因为该方法本身不是模板。
因此没有模板函数fill_vector的定义,编译器会发出错误。
答案 1 :(得分:0)
int miniVector<T>::fill_vector(miniVector<T> &obj)
这表示:类型为T的类miniVector的方法,它返回一个int并接受对类型为T的miniVector对象的引用。
您无法使用
调用此方法sizearray = fill_vector<int>(v);
你必须这样称呼它:
sizearray = v.fill_vector(some_other_miniVector);
,其中
some_other_miniVector
是
miniVector<int> some_other_miniVector;