结构 C++ 含义卡住

Structure C++ meaning stuck

这真是C++语言的问题,结构里面的SNeuron(int NumInputs);是什么意思?我不是 C++ 程序员,这种结构内部结构对我来说很奇怪。任何人都可以解释它的用途吗?我已经试过了 google。

 struct SNeuron
    {
       //the number of inputs into the neuron
       int m_NumInputs;

       //the weights for each input
       vector<double> m_vecWeight;

       //ctor
       SNeuron(int NumInputs);
    };

C++ 中的结构与 class 完全相同,除了默认情况下结构的所有成员都是 public。

所以您在这里看到的只是结构的构造函数声明。

我认为原因是为了更容易与 C 进行互操作。

它只是为结构 SNeuron 声明一个构造函数。这称为原型方法,除非稍后实现,否则不会起作用。它可以通过说

在 class 内部实现
SNeuron(int NumInputs) {
    // Constructor code
}

或者外面这样:

SNeuron::SNeuron(int NumInputs) {
    // Constructor code
}

这个的主要用途是初始化字段 m_NumInputs 和 m_vecWeight。

创建结构实例时,需要"constructed"(即初始化),这是通过构造函数完成的,编译器在创建实例时自动调用这些函数。

例如,在下面声明和定义一个使用结构体的变量时,会调用构造函数:

SNeuron myNeuron(5);  // Creates the instance and calls the constructor function

那只是一个构造函数。构造函数基本上是一种机制,当创建 class 类型的对象时,您可以通过该机制初始化 class 的所有数据成员。

您可以为 struct 和 class 编写构造函数。 但是您在代码中声明的构造函数不是默认构造函数,因为默认构造函数是不带参数的构造函数。