C语言中的嵌套实例# 我试图把一些神经网络C++代码转换成C语言。我首先从1993本书中获取C++代码,然后运行它。然后使用STL翻译它,它再次运行。现在,我正试图用VisualWebDeveloper2008Express将其导入C#

C语言中的嵌套实例# 我试图把一些神经网络C++代码转换成C语言。我首先从1993本书中获取C++代码,然后运行它。然后使用STL翻译它,它再次运行。现在,我正试图用VisualWebDeveloper2008Express将其导入C#,c#,C#,最初的代码使用了“friend”类,我只是想做同样的事情,让一切都“公开” 以下代码进行编译,但在运行时仅提供空引用: public class ineuron { public Double weight, activation; public ineuron(Double set_wt) { weight = set_wt; } 后来,在一些代码中,按下按钮调用: netwrk ntw = new netwrk(i_n1, i

最初的代码使用了“friend”类,我只是想做同样的事情,让一切都“公开”

以下代码进行编译,但在运行时仅提供空引用:

public class ineuron
{
     public Double weight, activation;

     public ineuron(Double set_wt)
     {
         weight = set_wt;
     }

后来,在一些代码中,按下按钮调用:

netwrk ntw = new netwrk(i_n1, i_n2, i_n3, i_n4);
不幸的是,尝试使用
ntw.in1.activation
等会导致空引用运行时错误

我忘记做什么了

Barney执行此操作时:

ineuron in1 = new ineuron(inp_1);
您声明了一个新的局部变量,该变量在构造函数完成时消失

如果您想在1中引用类成员
,只需执行以下操作:

in1 = new ineuron(inp_1);
执行此操作时:

ineuron in1 = new ineuron(inp_1);
您声明了一个新的局部变量,该变量在构造函数完成时消失

如果您想在1
中引用类成员
,只需执行以下操作:

in1 = new ineuron(inp_1);

您正在失去
网络
inueron
对象的作用域

public class netwrk
 {
     public oneuron onrn;
     public ineuron in1, in2, in3, in4;

     public netwrk( Double inp_1, Double inp_2, Double inp_3, Double inp_4 )
     {
         in1 = new ineuron(inp_1);
         in2 = new ineuron(inp_2);

您正在失去
网络
inueron
对象的作用域

public class netwrk
 {
     public oneuron onrn;
     public ineuron in1, in2, in3, in4;

     public netwrk( Double inp_1, Double inp_2, Double inp_3, Double inp_4 )
     {
         in1 = new ineuron(inp_1);
         in2 = new ineuron(inp_2);

是的,这解决了问题!谢谢你(也谢谢格雷格)!现在我才明白为什么这是因为类似的C++代码与引导语句的类型一起工作。是的,解决了这个问题!谢谢你(也谢谢格雷格)!现在我已经明白了为什么这类似于C++代码与引导语句的类型一起工作。