| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1687 人关注过本帖
标题:为结构添加方法
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
所以你可以使用一些技巧来模拟mangled name的

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 16:59
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
用一个指向函数的指针放在函数里面可以实现

学习需要安静。。海盗要重新来过。。
2008-06-20 17:00
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
找个C++的编译器,看看C++编译器是怎么实现的不就知道了吗

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-06-20 17:03
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
C模拟C++,貌似就是接口规则....语法不像,但是就那么回事...

樱花大战,  有爱.
2008-06-20 17:04
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
恩。
还有,C++的this通过ecx传递,速度上比C模拟的快。
C++和C各有所长,何必去模拟呢?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 17:06
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
我当且紧当关心的是实现的技巧,而不关心其实现有什么价值,它价值之所在否,那是另一个讨论范畴了..
太多题外之言没用...

/images/2011/147787/2011051411021524.jpg" border="0" />
2008-06-20 17:37
无语雨季
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-6-19
收藏
得分:0 
[bo][un]ioriliao[/un] 在 2008-6-17 14:26 的发言:[/bo]


#include
typedef void (*printDel)();
typedef struct point
{
     int x;
     printDel print;      
}point;
void print(point*);
point* new_point();

point* new_point()
{
     point* tmp= ...

这位兄弟真的很不错,很喜欢研究,也不说一些空洞的话,写代码就是做实事,就算简单,比耍嘴皮子要好,支持你呵呵
不过我认为你开辟内存空间是多余的。这样就可以的
#include <stdio.h>
typedef void (*printDel)();
typedef struct
{
     int x;
     printDel print;
}point;
void print(point*);
point* new_point();

point* new_point()
{
     point* tmp=NULL;
     tmp->print=print;
     return tmp;
}
void print(point* tmp)
{
     printf("%d\n",tmp->x);
}

int main(void)
{
    point* xy=new_point();
    xy->x=10;
    xy->print(xy);
    getch();
    return 0;
}
2008-06-20 18:10
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
xy->print(xy);
既不是方法调用的形式,也不是扩展语义的形式..

樱花大战,  有爱.
2008-06-20 18:17
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
谢谢17楼仁兄改之...

/images/2011/147787/2011051411021524.jpg" border="0" />
2008-06-20 18:19
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
C没有重载,就不要画虎类猫了吧?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 18:56
快速回复:为结构添加方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024872 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved