游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2066|回复: 6

一个奇怪的void 指针问题,点解。。。

[复制链接]

16

主题

91

帖子

103

积分

注册会员

Rank: 2

积分
103
发表于 2005-9-12 23:19:00 | 显示全部楼层 |阅读模式
(1)
void ffc(void* aa)
{

        (vector<CString> * )(aa)->push_back("aaaaaaaaaaa");   // 出错,不知是为什么
}
void CVoidPointerDlg::OnButton1()
{
      ffc(&vtest);
}

(2)
void ffc(void* aa)
{


    vector<CString> *jj=(vector<CString> * )(aa);       
   jj->push_back ;
}
void CVoidPointerDlg::OnButton1()
{
      ffc(&vtest);
}



不知为什么要用第二种方法才正确 [em4]

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2005-9-12 23:32:00 | 显示全部楼层

Re:一个奇怪的void 指针问题,点解。。。

这样改一下呢:((vector<CString> * )aa)->push_back("aaaaaaaaaaa");   

0

主题

63

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2005-9-12 23:33:00 | 显示全部楼层

Re:一个奇怪的void 指针问题,点解。。。

改为:
((vector<CString> * )(aa))->push_back("aaaaaaaaaaa");   
试试看。

2

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2005-9-13 23:40:00 | 显示全部楼层

Re:一个奇怪的void 指针问题,点解。。。

第一种写法是对(aa)->push_back("aaaaaaaaaaa"); 的结果作指针转换。

3

主题

105

帖子

105

积分

注册会员

Rank: 2

积分
105
发表于 2005-9-14 09:52:00 | 显示全部楼层

Re:一个奇怪的void 指针问题,点解。。。

     应该是执行顺序的问题,先执行了成员函数,第一个方法转换的是返回值的类型,而void *当然没有push_back()的成员函数咯

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-9-17 10:59:00 | 显示全部楼层

Re:一个奇怪的void 指针问题,点解。。。

优先级的问题。。。

16

主题

91

帖子

103

积分

注册会员

Rank: 2

积分
103
 楼主| 发表于 2005-9-18 01:23:00 | 显示全部楼层

Re:一个奇怪的void 指针问题,点解。。。

谢谢各位,一不小心又范了优先级的错误,真不好意思主要是编码太久,头发晕了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-27 22:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表