首页 新闻 会员 周边 捐助

C++调用传参出现的一个非常怪的问题。

0
[已解决问题] 解决于 2010-09-26 12:32

.h

上面是主函数中的调用

下面是调试的时候出现的结果

文件中的声明

string KNNClassificationCell(int articleId,int N,vector<string>catigorization,map<string,vector<pair<int,int>>> &mymap,map<int,vector<double> >&trainingsetVSM);//KNN分类

.cpp文件中的定义:

string Preprocess:: KNNClassificationCell(int articleId,int N,vector<string>categorization,map<string,vector<pair<int,int>>> &mymap,map<int,vector<double> >&trainingsetVSM)

主函数中的调用:

string classLabel=p.KNNClassificationCell(1,300,categorization,mymap,VSMMatrix);

在.cpp文件中对应的函数设置断点进行调试,发现了一个非常奇怪的线性, categorization,mymap,vsmmatrix传递过来的实际参数都正确,可是,articleId和N确等于一个非常大的整数4208654, 而不是1和300。这是怎么回事呢?

问题补充: 问题已解决,将参数传递方式改为const int & 就没问题了,好奇怪,求解释
finallyly的主页 finallyly | 初学一级 | 园豆:100
提问于:2010-09-26 10:42
< >
分享
最佳答案
0

重新编译.

Launcher | 高人七级 |园豆:45050 | 2010-09-26 10:48
不行,我试过了,行不通
finallyly | 园豆:100 (初学一级) | 2010-09-26 10:53
@finallyliuyu:你抓个图我看看.
Launcher | 园豆:45050 (高人七级) | 2010-09-26 11:04
我抓图了,不知道你是不是想让我这样抓图
finallyly | 园豆:100 (初学一级) | 2010-09-26 11:11
图中的参数是我改成const 以后,有同学建议我那么改的,改了之后还是不行
finallyly | 园豆:100 (初学一级) | 2010-09-26 11:12
@finallyliuyu:我也觉得很奇怪,实在是无法在我的机器上重现你遇到的现象.
Launcher | 园豆:45050 (高人七级) | 2010-09-26 11:57
把形参类型改成const int & 即可解决问题
finallyly | 园豆:100 (初学一级) | 2010-09-26 12:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册