有关vector。。。。
在一个类中定义和赋值的vector变量,怎么在另一个类中使用呢?
[解决办法]
1.用友元类
2.写一个vector<???> GetVector(){} //产生的内存复制效率不考虑
3.直接public:
[解决办法]
在这个类中定义一个 getXXXX 的方法返回 vector 变量的指针或引用.
其它类找到对象后在上面调用这个方法.
[解决办法]
两种方法可用:
1、友元,不过不建议这样用。
2、类中声明一个对vector的操作函数,外部类用时调用这个函数
北京c++技术交流圈221498718
[解决办法]
正常的按照类的数据成员来调用啊,小弟拙见,不知你问的是否是这个意思
可以参看下面的代码:
class A
{
public:
explicit A(){}
explicit A(vector<int> arg):PriData(arg){}
void Read(vector<int> &Data) //或者直接输出
{
Data.clear();
for(int i=0;i!=PriData.size();i++)
Data.push_back(PriData[i]);
}
void Write(vector<int> Data)
{
PriData.clear();
for(int i=0;i!=Data.size();i++)
PriData.push_back(Data[i]);
}
private:
vector<int> PriData;
};
class B
{
public:
explicit B(){}
explicit B(A Temp):ClassArg(Temp){}
void Read()
{
vector<int> Data;
ClassArg.Read(Data);
for(int i=0;i!=Data.size();i++)
cout<<Data[i]<<" ";
cout<<endl;
}
void Write(vector<int> Data)
{
ClassArg.Write(Data);
}
private:
A ClassArg;
};
int main( )
{
A a;
vector<int> test_1(5,10);
A b(test_1);
vector<int> test_2;
b.Read(test_2);
for(int i=0;i!=test_2.size();i++)
cout<<test_2[i]<<" ";
cout<<endl;
vector<int> test_3(5,3);
a.Write(test_3);
a.Read(test_2);
for(int i=0;i!=test_2.size();i++)
cout<<test_2[i]<<" ";
cout<<endl;
B c(a);
c.Read();
B d;
d.Write(test_3);
d.Read();
return 0;
}