首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 一个关于成员函数参数传递的有关问题

2013-07-16 
C++ 一个关于成员函数参数传递的问题这是BpNet类的一个成员函数:void BpNet::Classify(double plfInput[],

C++ 一个关于成员函数参数传递的问题
这是BpNet类的一个成员函数:
void BpNet::Classify(double plfInput[], double plfOutput[])
   {
         。
         。
         。                                                           
     if (plfOutput != NULL)
     memcpy(plfOutput, _plfOutputOut, sizeof(double) * _nOutput);//_plfOutputOut是处理的中间结果,不用                                                                           管它
     }
我在main函数中调用这个类对象的这个成员函数:
double a[3]={8.38,901,71.37};
double b[2];//main函数所要的结果
ann.Classify(a,b);
我的问题是:在成员函数得到的b,可以在主函数中用么??那要想在main函数中用应该怎么改??
例如:
  for (int n=0;n<2;n++)
   {
       cout<<"shuchujieguo:"<<b[n]<<endl;
   }
希望得到高手的指点,谢谢!!!!, 类 C++
[解决办法]
这是典型的传址参数,在函数里面修改了数组的元素值,会被带回主函数的

你也可以把这个参数改为double* 类型,但是要多带壹个数组长度参数


double a[3]={8.38,901,71.37};
double b[2];//main函数所要的结果
ann.Classify(a,b);
 for (int n=0;n<2;n++)
   {
       cout<<"shuchujieguo:"<<b[n]<<endl;
   }
  这个有什么好问的,直接编译运行就知道结果了,和你想的不一样,才需要提出问题
[解决办法]
plfOutput的值是main函数中数组b的基地址,使用memcpy将地址内的数组修改了


那么b[0] b[1]为该地址内的值,同样是修改了的
除非你的sizeof(double) * _nOutput == 0 

热点排行