结构C ++意味着卡住了

时间:2015-05-01 01:21:58

标签: c++ structure

这是关于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);
    };

4 个答案:

答案 0 :(得分:3)

C ++中的结构与类完全相同,只是结构的所有成员默认都是公共的。

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

我认为,原因是为了简化与C的互操作性。

答案 1 :(得分:2)

它只是声明struct SNeuron的构造函数。这称为原型方法,除非稍后实施,否则不会进行操作。它可以通过说

在课堂内实现
SNeuron(int NumInputs) {
    // Constructor code
}

或者像这样:

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

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

答案 2 :(得分:1)

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

例如,在下面的声明和使用该结构的变量定义中,将调用构造函数:

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

答案 3 :(得分:0)

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

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