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

C++可以通过值包含子类包含类吗?

  •  -1
  • Newline  · 技术社区  · 7 年前
    class Containing{
    
        class Subclass{
    
            Containing cont;
    
        };
    
    };
    

    2 回复  |  直到 7 年前
        1
  •  4
  •   molbdnilo    7 年前

    这和

    class Containing; 
    class Subclass 
    { 
        Containing cont; 
    };
    

    可以用与非嵌套问题相同的方法来解决它,方法是在依赖的类之后定义依赖类。

    class Containing
    {
        class Subclass;
    };
    
    class Containing::Subclass
    {
        Containing cont;
    };
    
        2
  •  1
  •   birdfreeyahoo    7 年前

    我想你想要的是一个指针:

    class Containing;
    
    class Containing{
    
        class Subclass{
    
            Containing* cont;
    
        };
    
    };
    

    我在课堂上所做的是一个向前的声明。这意味着我告诉编译器有一个名为包含声明的类。然后您可以使用一个指向Containing的指针,因为您不必知道任何关于Containing的成员或大小的信息。

    class Containing;
    
    class Containing{
        Containing* cont;
    };