我是c ++的新手,我创建了两个类。一个类(例如A)会将结构数据推入向量,而另一个类(例如B)将从向量中弹出数据。
如何将向量的引用从A类传递给B,以便B类可以指向同一向量对象以弹出数据,以进行一些操作。
谁能帮助我解决这个问题
到目前为止,我的努力是 A.h文件:
struct strctOfA {
int x;
int y;
int z;
};
class A {
public:
A();
private:
std::vector<strctOfA> t2;
};
A.cpp文件:
A::A() {
strctOfA player;
player.x=1;
player.y=2;
player.z=3;
t2.push_back(player)
B b;
b.functionOfB(&t2);
}
B.h文件
class B {
public:
B();
functionOfB(&t2);
};
B.cpp:
B::functionOfB(A &t) {
t2.pop_front();
}
答案 0 :(得分:0)
使用一个朋友类,这是一个在另一个类中被声明为friend(用关键字friend)的类。它可以访问其他类的私有成员和受保护成员。允许特定的类访问另一个类的私有成员很有用。 示例:
a.h
typedef struct strctOfA {
int x;
int y;
int z;
}positions;
class A {
public:
A();
friend class B;
private:
strctOfA player;
std::vector<positions> t2;
};
a.cpp
A::A() {
player.x=1;
player.y=2;
player.z=3;
t2.push_back(player);
}
b.h
class B {
public:
B();
void functionOfB(A &x);
};
b.cpp
B::B() {
}
void B::functionOfB(A &x) {
x.t2.pop_back();
}
main.cpp
int main() {
A instanceOfA;
B *instanceOfB = new B();
instanceOfB->functionOfB(instanceOfA);
return 0;
}