C++嵌套结构,在healer文件中带有动态数组。

我试图在一个头文件中定义一堆结构。例如,我想在头文件中定义一堆结构。

struct Firststruct{
    int useless;
};

struct Secondstruct{
    Firststruct* struct1;    // we want to have a dynamic array here.    
};

struct Thirdstruct{
    Secondstruct* struct2;    // we want to have a dynamic array here.    
};

为了在主文件或源文件中简单地使用. 我们想定义结构的构造函数。例如:我们想定义一个结构的构造函数。

struct Secondstruct{
    Firststruct* struct1;    // we want to have a dynamic array here. 

    // constructor
    Secondstruct(int num_struct1){
        struct1 = new Firststruct[num_struct1];
    };

    // deconstructor
    blablabla
};

那么问题来了,我们如何在Thridstruct中定义构造函数?

struct Thirdstruct{
    Secondstruct* struct2;    // we want to have a dynamic array here. 

    // constructor
    Thirdstruct(int num_struct2){
        struct2 = new Secondstruct[num_struct2];    // this of couse does not work. 
    };

    // deconstructor
    blablabla
};

我是C++新手,所以不知道怎么写。谁能提供一些思路?

谢谢。:)

解决方案:

选项1:使 Secondstruct 通过定义一个默认的构造函数来实现默认的可构造。

选项2:不创建一个动态的 Secondstruct 直接使用,而是一个足够大小的原始字节的动态数组。然后用 std::uninitialized_fill.

最佳选择。使用 std::vector 而不是选择2,这听起来很复杂,同时也没有自定义的动态数组尝试所带来的内存泄漏和未定义行为。

给TA打赏
共{{data.count}}人
人已打赏
未分类

树形ort dart - 根据父子关系对列表进行重新排序。

2022-9-8 23:50:18

未分类

在Node.js中,如何打破一个函数内的无限循环?

2022-9-8 23:50:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索