首页 > 解决方案 > 另一个类中的向量对象初始化向量对象并访问向量对象

问题描述

我正在学习 c++ 初学者级别。让我们举个例子。我想知道如何访问另一个类中的向量,向量成员的 getter 和 setter 用法。

class A{
    int id;
public :
    A(){
    }
    A(int id){
        id=id;
    }
    int get(){
        return id;
    }
    void set(int id1){
        id=id1;
    }

};
class B{
    vector <A> bb1;
}; 

如何为向量 bb1 创建构造函数、setter、getter。

标签: c++stl

解决方案


喜欢int,但要小心不要复制很多:

class B {
private:
  vector<A> bb1;
public:
  B(vector<A> v) : bb1{std::move(v)} {}
  auto& get_vec() noexcept { return bb1; }
  auto const& get_vec() const noexcept { return bb1; }
  void set_vec(vector<A> v) { bb1 = std::move(v); }
};

强调:

  • noexcept(在这种情况下)大致意味着这个函数不会抛出。进一步阅读
  • const(在这种情况下)意味着这个函数不会改变对象的状态。进一步阅读
  • std::move粗略地说,将一个对象的资源“移动”到另一个对象。通常会为您保存一份副本。当然std::move比这复杂得多。进一步阅读

推荐阅读