none
结构体指针初始化问题 RRS feed

  • 问题

  • 我定义一个结构体指针

    tagStruct1
    {
        tagStruct2*  a;
        tagStruc3*  b;
        int c;
    }


    ....


    在一个class CA里面用到
    -------- CA.h -----------
    tagStruct1* m_Struc1;

    -------- CA.cpp -----------
    m_Struc1 = new tagStruct1;



    我想问的是,结构体tagStruct1在哪里初始化,一定要么?
    另外tagStruct2又要在哪里初始化呢?
    谢谢
    2009年9月17日 5:07

答案

  • 你需要通过new 来为结构体分配内存,同时如果tagStruct2*和tagStruct3*这两个结构体指针需要分配内存的话就需要为tagStruct1写一个构造函数了。在C++中Struct和class并没有什么本质区别,一样可以实现多态。不同的是struct默认访问权限是public。也就是说在这里tagStruct2*和tagStruct3*以及 c都是public的。而class默认是private。还有就是默认派生关系,struct是公有继承,而class是私有继承。
    麻烦把正确答案设为解答。
    • 已标记为答案 beyard 2009年9月18日 3:17
    2009年9月17日 15:08
    版主