我对如何使用来自不同类的值填充向量感到困惑。
任何人都可以给我一个编码示例如何完成此操作。 :)
Class A
{
//vector is here
}
Class B
{
//add values to the vector here
}
main()
{
//access the vector here, and print out the values
}
我感谢帮助< 3
答案 0 :(得分:1)
access levels和encapsulation似乎是一个快速的课程。
答案 1 :(得分:0)
我的猜测,根据问题,触摸是你正在寻找以下代码。
int main()
{
ClassA[] as = {new ClassA(), new ClassA(), ... }
ClassB[] bs = {new ClassB(), new ClassB(), ... }
}
但是我在黑暗中拍摄了一下。 :)
答案 2 :(得分:0)
您应使您的问题更具体,编辑并发布您尝试过的内容。如果你的意思是做一些尊重oop规则的事情,这个游戏看起来像这样:
#include<iostream>
#include<vector>
class A{
public:
void fill_up_the_vector() { v=std::vector<int>(3); v[0]=0; v[1]=1; v[2]=4; }
void add( a.add(i); ) { v.push_back(i); }
void display_last() const { std::cout<<v[v.size()-1]; }
private:
std::vector<int> v;
};
class B{
public:
B(){ a.fill_up_the_vector(); } // B just *instructs* A to fill up its vector.
void add_value(int i) { a.add(i); }
void display() const { a.display_last(); }
private:
A a;
};
int main()
{
B b;
b.add_value(9);
b.display(); // reads v through A.
}
请注意,上面的示例与您提出的内容略有不同。我发布它,因为我认为你应该记住,根据OOP规则
另一种方法是不 OOP:
struct A{
std::vector<int> v;
};
struct B{
static void fill_A(A& a) const { a.v = std::vector<int>(3); a.v[0]=0; a.v[1]=1; a.v[2]=4; }
};
int main()
{
A a;
B::fill_A(a);
a.v.push_back(9);
std::cout << a.v[a.v.size()-1];
}
但是这段代码和它一样可怕。