vector类型定义类的对象
primer 中写到 :
vector<int> ivec ;
vector<sales_item> sales_vec;
上面的第一个定义类型是vector<int> ,该类型是含有若干int类型对象的vector,变量名是ivec, //这句话可以理解
第二个定义的变量名是sales_vec它所保存的元素是sales_item类型的对象 --这句话该如何理解呢 ?
于是我做了以下尝试
#include <string>#include <vector>#include <iostream>using namespace std;int main(){ class fi{ public: string s(string m){ return m; } }; vector<fi> n; cout<<n.s("jinling"); return 0;}
#include <string>#include <vector>#include <iostream>using namespace std; class fi{//定义类要放到全局 public: string s(string m){ return m; } };int main(){ vector<fi> n; fi f;//实例化一个fi类型的对象 f n.push_back(f);//将f放入容器n中。 cout<<n[0].s("jinling") << endl;//n[0]是访问容器的第一个元素,也就是f ,f.s("jingling")调用了类的成员函数 s,返回"jinling" 使用cout输出这个返回值 return 0;}
[解决办法]
cout<<n.s("jinling");
error C2039: 's' : is not a member of 'std::vector<_Ty>
s不是vector的成员函数
回去好好看看vector他是容器,不是你那么用的