代码之家  ›  专栏  ›  技术社区  ›  Ailurus

对象为Y的类X,从Y中访问X的公共变量

  •  0
  • Ailurus  · 技术社区  · 7 年前

    给定自定义类 X 使用另一个自定义类的实例向量 Y , 我想访问类的公共变量 十、 从实例中 例如,使用全局引用或指针指向 . 最终,阶级 Z 包含类的实例 十、 (目前,只能有一个 一次,这暗示了使用单例)。

    最初的想法是 myX (在课堂上定义 Z )全球可用,但我不确定如何正确地做到这一点。如果我使用 从内部 Y (例如使用 extern ), Y 必须了解课堂情况 . 但我不能包括 十、 在这里我可以用一份 十、 ,但是 Y 还是不知道 myObjectsY . 显然,这不起作用。


    X类

    #include 'Y.h'    
    
    class X {
      public:      
      vector<Y> myObjectsY;
    };
    

    Y类

    class Y {
      // How to obtain e.g. the number of objects Y in the myObjectsY vector
    };
    

    Z类

    #include 'X.h'
    
    class Z {
      X *myX = new X();
    };
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Knoep    7 年前

    只需在Y.h中向前声明X并给Y一个指向X的指针。如果在Y.cpp中包含X.h,则可以在Y.cpp中定义的函数中访问X的成员(因为此时已知X的定义)。