您的位置:首页 > 其它

[错误记录]关于指针传递获得数据使用错误问题....

2008-02-02 23:46 841 查看
关于指针传递获得数据问题
为什么以下函数通过一个指针传入函数中获得数据, 返回的确是无数据的变量?
bool Scene::ResultSelectScene::getPlayerSaveData( LogData* logData )
{
// 保证数据已经获得
if ( !mCurPlayerLogData.empty() ){
// 错误... 这里试图把成员变量的指针传递给logData...
logData = &mCurPlayerLogData;
return true;
}else{
logData = 0;
return false;
}
}
原因是我在调用时的那个LogData不是声明一个NULL指针...
而用了一个变量...
如下
// 进入保存场景
// 获得当前场景中的玩家记录数据
LogData logData;
// 1 判断用户选择条件是否满足
// 是否成功获得? ERROR: 这样的用法错误...
bool isGet = mRenderWnd->getCurScene()->getPlayerSaveData(&logData);

这里把logData当作指针传入成员函数.. 再获得指针....
当调用函数的时候,这里首先获得了变量logData的地址... 再用一个指针指向它... 之后又用传入类的成员变量指针赋予这个指针... 所以不影响传入变量...
我个人的想法是这样...
= = 这样使用的错误理由是什么? 语言上的解释是什么?上面那个形参使用的指针式logData是临时的么?

后来就改成用引用传递了...

bool Scene::ResultSelectScene::getPlayerSaveData( LogData& logData )
{
// 保证数据已经获得
if ( !mCurPlayerLogData.empty() ){
// 修整, 重载赋值操作符
logData = mCurPlayerLogData;
return true;
}else{
return false;
}
}
一时脑残还是弄得不大明白...OTL 知道的人指教一下具体原因....某人经常在简单的基础问题上脑残...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐