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

C++结构中的类

c++
  •  0
  • Jay  · 技术社区  · 6 年前

    我们能在一个结构中定义一个类吗?如果是,那怎么办?它的语法是什么?

    5 回复  |  直到 16 年前
        1
  •  10
  •   abelenky    16 年前

    对。下面是声明、实现和用法的示例。

    宣言

    struct MyStruct
    {
        int m_Int_in_Struct;
    
        class MyClass
        {
            public:
                MyClass(); // default constructor
                int m_Int_in_Class;
        };
    };
    

    实施

    MyStruct::MyClass::MyClass() // Constructor Implementation
    {
        m_Int_in_Class = 5; 
    }
    

    用法

    int main(int argc, char* argv[])
    {
        MyStruct::MyClass* newObject = new MyStruct::MyClass();
        newObject->m_Int_in_Class = 10;
    }
    

    希望这能回答你的问题。

        2
  •  2
  •   Piotr Dobrogost    16 年前

    C++中的结构是所有成员都公开的普通类。
    因为可以将一个类声明嵌套在另一个类声明(创建嵌套类)中,所以可以在结构中执行相同的操作。

        3
  •  1
  •   Indy9000    16 年前

    是的,你可以。例如:

    struct A
    {
        bool _a;
        int  _aa;
    
        class B
        {
            int _b;
            public:
            B(const int bb):_b(bb){}
        };
    };
    
        4
  •  1
  •   sth    16 年前

    在C++中,唯一的区别是 class 和A struct 那是 -默认情况下,成员是私有的,而 结构 -成员默认为public。因此,在结构中定义类的工作方式与在另一个类中定义类的工作方式相同:

    struct A {
      class B {};
      B b;
    };
    
    A::B b2;
    
        5
  •  -1
  •   2 revs, 2 users 86%<br/>Chris&#13; &#13;    16 年前
    struct s1
    {
        class c1
        {
                int n;
                public:
    
        };
    };