当前位置: 代码迷 >> C语言 >> 一个很有意思的函数,是c中的对象?
  详细解决方案

一个很有意思的函数,是c中的对象?

热度:89   发布时间:2008-03-11 17:56:41.0
一个很有意思的函数,是c中的对象?
int add(int i,int j)
{
return i+j;
}
void main(void)
{
int q;
struct class
        {
         int i;
         int j;
         int (*p_add)();
     }one;


/*初始化*/
one.i=10;
one.j=20;
one.p_add=add;

q=(*one.p_add)(one.i,one.j);
printf("%d",q);
}



我是这样理解了一下,不知道理解是不是有误?
这样应该完成数据与代码的封装,
不知道是不是这样
just  a  try!
for fun
搜索更多相关的解决方案: 函数  对象  
本帖最近评分记录
2008-03-11 09:56:41
cosdos

来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2107
专家分:1364
注 册:2007-6-19
  得分:0 
不是

这与C++等有很大区别
----------------解决方案--------------------------------------------------------
这样也很麻烦
----------------解决方案--------------------------------------------------------
那c++怎么干的呢?
----------------解决方案--------------------------------------------------------
记得C的struct不能有函数的吧?
----------------解决方案--------------------------------------------------------
楼主用的是函数的指针
----------------解决方案--------------------------------------------------------
是啊..楼主发现一个新的用法....有点像类....
----------------解决方案--------------------------------------------------------
很麻烦的用法呦。

想过,但太麻烦
----------------解决方案--------------------------------------------------------
恩是麻烦了点....但是也算是新的发现了......给点铜板奖励一下
----------------解决方案--------------------------------------------------------
哦,看错了,不好意思

其实封装只是类的功能(或者叫特性)之一,类同时还有继承和多态,这个C是没办法的吧.

另外,你这样做,也不是体现了封装性,因为封装的意思,就是"你能够知道和应该知道的东西让你知道,至于我怎么实现的,不关你的事",而这样写显然不行.
----------------解决方案--------------------------------------------------------
  相关解决方案