如何为另一个构造函数调用的构造函数提供参数?

斯莱恩特

在我的项目,我有四个结构:NodeRingDisc,和Graph

  • 一个Ring包含两个Node每个12 s的向量
  • aDisc包含一个Rings的向量(一个参数告诉构造函数多少个)
  • aGraph包含Discs的向量(同样,数字由参数提供)

除了Graphs之外,其他一切都正常如果我想构造一个Disc,我可以通过构造函数设置Ring其包含s数量,std::vector<Ring> rings如下所示:

Disc::Disc(size_t r) : rings {r} {};

但是,如果我想建立一个图表,我莫名其妙地需要设置盘的数量环的每个光盘的数量。因此,我想我需要的是一种在正在为每个正在构造的Disc调用Ring构造函数时将参数输入到Ring构造函数的方法。我是编程新手,但是不幸的是,我还没有找到任何有关如何告诉构造函数在这种情况下该怎么做的教程。但是也许我会以完全错误的方式来解决这个问题。

泰德·林格莫

我将可以使用与您在类中存储的相同类型的容器直接初始化每个类。这样一来,您不必提供其中每个都有多少个。

这是您的班级的一些组合版本。

struct Node { int x; };

struct Ring {
    Ring(std::array<std::array<Node, 12>, 2> a) : nodes(std::move(a)) {}
    auto begin() { return nodes.begin(); }
    auto end() { return nodes.end(); }
private:
    std::array<std::array<Node, 12>, 2> nodes;
};

struct Disc {
    Disc(std::vector<Ring> in) : rings(std::move(in)) {}
    auto begin() { return rings.begin(); }
    auto end() { return rings.end(); }
private:
    std::vector<Ring> rings;
};
 
struct Graph {
    Graph(std::vector<Disc> in) : discs(std::move(in)) {}
    auto begin() { return discs.begin(); }
    auto end() { return discs.end(); }
private:
    std::vector<Disc> discs;
};

然后,您可以Graph一次性创建一个整个对象

Graph graph(
    { // discs
        { // disc 0
            { // rings
                { // ring 0
                    { // array initialization
                        { // outer array
                            { 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12}, // nodes 0 (inner)
                            {13,14,15,16,17,18,19,20,21,22,23,24}  // nodes 1 (inner)
                        }
                    }
                },
                { // ring 1
                    {
                        {
                            {25,26,27,28,29,30,31,32,33,34,35,36},
                            {37,38,39,40,41,42,43,44,45,46,47,48}
                        }
                    }
                }
            }
        },
        { // disc 1
            { // rings
                { // ring 0
                    {
                        {
                            {49,50,51,52,53,54,55,56,57,58,59,60},
                            {61,62,63,64,65,66,67,68,69,70,71,72}
                        }
                   }
                }
            }
        }
    }
);

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

另一个内的Java调用构造函数

来自分类Dev

从另一个调用构造函数,Java重载

来自分类Dev

另一个内的Java调用构造函数

来自分类Dev

从C ++ 17中的另一个构造函数调用具有不同参数类型的构造函数

来自分类Dev

同一类的另一个构造函数中的c ++调用构造函数

来自分类Dev

从Kotlin中的另一个构造函数调用默认构造函数

来自分类Dev

实现从另一个构造函数调用构造函数的最佳方法?

来自分类Dev

在另一个构造函数中为对象数组调用构造函数

来自分类Dev

从构造函数体中调用另一个构造函数

来自分类Dev

ponylang:在另一个构造函数中调用构造函数方法?

来自分类Dev

如何添加默认构造函数并使它调用另一个构造函数并使用默认值?

来自分类Dev

如何从另一个类参数访问类构造函数参数

来自分类Dev

如何在MVVM Light中调用另一个视图模型构造函数

来自分类Dev

如何从没有构造函数的另一个类中调用方法

来自分类Dev

如何调用另一个构造函数之前分割字符串

来自分类Dev

如何从另一个继承的类调用超级构造函数?

来自分类Dev

如何从另一个类构造函数调用变量(长度、宽度、高度)

来自分类Dev

从全局范围内的另一个函数调用函数构造函数的方法-Javascript

来自分类Dev

无参数构造无构造函数的类(来自另一个程序集)

来自分类Dev

如何在 Java 中从另一个构造函数调用一个构造函数?(初学者示例)

来自分类Dev

具有所有默认参数的显式构造函数不能从同一类的另一个构造函数调用

来自分类Dev

在Dart中重定向到另一个构造函数时,是否需要提供所有参数?

来自分类Dev

是否可以在另一个类中调用一个类的构造函数?

来自分类Dev

从另一个调用一个构造函数有什么利弊吗?

来自分类Dev

在另一个类的构造函数中使用一个类作为参数

来自分类Dev

如何使用一个类的构造函数作为Java中另一个类的对象的参数?

来自分类Dev

Javascript,从对象构造函数中的另一个onclick调用函数

来自分类Dev

是否可以将构造函数用作TypeScript中另一个函数的参数类型?

来自分类Dev

可以在类的构造函数内部使用“ new”来调用Java中的另一个构造函数吗?

Related 相关文章

  1. 1

    另一个内的Java调用构造函数

  2. 2

    从另一个调用构造函数,Java重载

  3. 3

    另一个内的Java调用构造函数

  4. 4

    从C ++ 17中的另一个构造函数调用具有不同参数类型的构造函数

  5. 5

    同一类的另一个构造函数中的c ++调用构造函数

  6. 6

    从Kotlin中的另一个构造函数调用默认构造函数

  7. 7

    实现从另一个构造函数调用构造函数的最佳方法?

  8. 8

    在另一个构造函数中为对象数组调用构造函数

  9. 9

    从构造函数体中调用另一个构造函数

  10. 10

    ponylang:在另一个构造函数中调用构造函数方法?

  11. 11

    如何添加默认构造函数并使它调用另一个构造函数并使用默认值?

  12. 12

    如何从另一个类参数访问类构造函数参数

  13. 13

    如何在MVVM Light中调用另一个视图模型构造函数

  14. 14

    如何从没有构造函数的另一个类中调用方法

  15. 15

    如何调用另一个构造函数之前分割字符串

  16. 16

    如何从另一个继承的类调用超级构造函数?

  17. 17

    如何从另一个类构造函数调用变量(长度、宽度、高度)

  18. 18

    从全局范围内的另一个函数调用函数构造函数的方法-Javascript

  19. 19

    无参数构造无构造函数的类(来自另一个程序集)

  20. 20

    如何在 Java 中从另一个构造函数调用一个构造函数?(初学者示例)

  21. 21

    具有所有默认参数的显式构造函数不能从同一类的另一个构造函数调用

  22. 22

    在Dart中重定向到另一个构造函数时,是否需要提供所有参数?

  23. 23

    是否可以在另一个类中调用一个类的构造函数?

  24. 24

    从另一个调用一个构造函数有什么利弊吗?

  25. 25

    在另一个类的构造函数中使用一个类作为参数

  26. 26

    如何使用一个类的构造函数作为Java中另一个类的对象的参数?

  27. 27

    Javascript,从对象构造函数中的另一个onclick调用函数

  28. 28

    是否可以将构造函数用作TypeScript中另一个函数的参数类型?

  29. 29

    可以在类的构造函数内部使用“ new”来调用Java中的另一个构造函数吗?

热门标签

归档