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

这段代码是什么意思,小白求解,该如何处理

2013-03-14 
这段代码是什么意思,小白求解本帖最后由 w835369950 于 2013-03-06 10:55:01 编辑class ScData{public:ScD

这段代码是什么意思,小白求解
本帖最后由 w835369950 于 2013-03-06 10:55:01 编辑

class ScData
{
public:
ScData();
ScData(int len);
~ScData();
public:
float *data;
//double *libsvm_data;
int featureLen;
string name; // 字符
IplImage *img;
};

typedef ScData* (*FunPtr)(IplImage *, string, int);
FunPtr fp;
ScData *scd = fp(image, "s.xml", 2);

[解决办法]
引用:
引用:
C/C++ code?12345678910111213class ScData{public:    ScData();    ScData(int len);    ~ScData();public:    float *data;    //double *libsvm_data;    int featureLen;    string name; /……


1个是申明FuncPtr 是 ScData* (*)(IplImage*, string, int) 类型;
1个是申明FunPtr 是 一个ScData* (*)(IplImage*, string, int) 类型变量。
[解决办法]
前者定义一种类型,后者声明一个函数指针
[解决办法]
大概是这样的吧:
typedef ScData* (*FunPtr)(IplImage *, const string&, int);
ScData* GetImageFromXML)(IplImage *, const string&, int);

FunPtr fp=GetImageFromXML;
ScData *scd = fp(image, "s.xml", 2); 
实现代码:
ScData* GetImageFromXML)(IplImage *Image, const string& s, int n){
ScData*pScData=new ScData;
..... 
return p; 
}
delete scd;
不然只有返回外部变量(指针),静态变量(指针)或外部变量静的地址,态变量的地址才行!!
这里定义一个函数指针,
用于从某个xml里提取图像,图像名字,数据,长度的。
问题是你贴出的代码里,没有初始化那个函数指针就使用了,不知是否故意没有贴出来,如果是
那这段代码没有任何问题,否则就会出现莫名其妙的错误了,一个不知为何的地址陪你当成函数调用,
结果不会好的。





热点排行