如题,未delete的动态数组不是可以任意范围使用吗?怎么好像NumInLay 这个只能在声明定义的函数内使用?
另外多问一句,怎么定义一个动态数组能让一个类的不同函数调用该数组的值?
另外多问一句,怎么定义一个动态数组能让一个类的不同函数调用该数组的值?
void BPNet::init()
{
//隐藏层层数
int hidenLayNum=2;
int* NumInLay = new int[hidenLayNum+2];
//输入层节点数
NumInLay[0]=InLayerNodesNum;
//输出层节点数
NumInLay[hidenLayNum+1]=OutLayerNodesNum;
//下标由1到hidenLayNum,代表每层隐藏层的神经元个数
NumInLay[1]=5;
NumInLay[2]=5;
}
int BPNet::train()
{
double a =NumInLay[1];//这里报错说NumInLay是未声明标识符
}
解决方案
80
int* NumInLay 定义在函数内,这个指针本身是局部变量
必须通过返回值,或其他方式传递到函数外部,才能够在其它函数内使用
一般来说,这个传递就是把指针的值,
复制出去(赋值给类的成员变量就可以了),
或 return 语句返回。
必须通过返回值,或其他方式传递到函数外部,才能够在其它函数内使用
一般来说,这个传递就是把指针的值,
复制出去(赋值给类的成员变量就可以了),
或 return 语句返回。