首页
社区
课程
招聘
[求助] C++转化为C的问题(gpPicture->Release())
发表于: 2011-7-13 10:24 5119

[求助] C++转化为C的问题(gpPicture->Release())

2011-7-13 10:24
5119
C++的:
gpPicture->Release();
如何转化为纯C的写法?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
如果Release只是简单的成员函数,就这样。
Release( gpPicture );

如果是虚函数
gpPicture是一个结构,开始是个虚表指针,
(*gpPicture->pvtbl->somefun)();
2011-7-13 12:50
0
雪    币: 237
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
如果是:
Release( gpPicture );
则:
warning C4013: 'Release' undefined; assuming extern returning int
如果是:
(*gpPicture->pvtbl->Release)();
则:
error C2039: 'pvtbl' : is not a member of 'IPicture'
2011-7-13 13:04
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
晕,这些结构需要是你自己去实现的啊,C++中都是编译器去做的,C中要模拟C++实现多态,当然要自己去定义实现的。
2011-7-13 13:34
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
gpPicture 是个类吧,类有构造函数的,Release应该释放了类内的某些资源。C不支持类的,你需要把这个类改写的,弄懂了才行。
2011-7-13 13:45
0
雪    币: 237
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
也就是说:
C++的方法没办法转化为纯C的写法。?
2011-7-13 13:46
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
把类改写了就行。
2011-7-13 14:00
0
雪    币: 7
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
类的成员函数改成普通函数。
成员变量全部换成全局变量吧..
应该就转化成功了...
2011-7-13 14:34
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
看看这个,面试一道题--C模拟实现C++的多态 http://user.qzone.qq.com/31731705/blog/1310540087
2011-7-14 15:16
0
游客
登录 | 注册 方可回帖
返回
//