如何在 C++ 中访问另一个类中的矢量对象

how to access vector object in another class in c++

本文关键字:对象 访问 C++ 另一个      更新时间:2023-10-16

我是 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);
        };

乙.cpp:

 B::functionOfB(A &t) {
    t2.pop_front(); 
    }

使用朋友类,这是一个在另一个类中被声明为朋友(带有关键字 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;
};

答.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);
};

乙.cpp

B::B() {
}
void B::functionOfB(A &x) {
    x.t2.pop_back();
}

主.cpp

int main() {
    A instanceOfA;
    B *instanceOfB = new B();
    instanceOfB->functionOfB(instanceOfA);
    return 0;
}