C语言能不能简单的实现C++的this指针解决办法
C语言能不能简单的实现C++的this指针C++的所有类成员函数会有一个隐含的this指针作为入口参数,不知道C语言
C语言能不能简单的实现C++的this指针 C++的所有类成员函数会有一个隐含的this指针作为入口参数,不知道C语言中能不能变相实现struct里的函数指针也隐含带上this指针。 比如做如下一个结构体
C/C++ codestruct A{ int num; int (*setNum)(int value);}; 能实现类似下面的功能
C/C++ codestruct A{ int num; int (*setNum)(struct A a,int value);//这里其实编译过不了的};int setNum(struct A a, int value){ a.num = value;}A a;a.setNum = setNum;a.setNum(a,1); 即把函数指针中的第一个参数实现成一个隐含的this指针。初步想用宏定义来替换掉,但是不知道怎么做,请各位高手指点迷津。
[解决办法] 就别玩这种技巧了吧。没有编译器的直接支持,怎么模拟代码恐怕都是丑陋的,使用者的负担都是沉重的。
[解决办法] 不是很明白楼主意思,如果是想在C中实现:a->setNum(a, 10); 六楼写得很清楚;
但如果你想像C++一样隐藏this参数传入的事实,如a->setNum(10);,我也考虑过这个问题,但没找到合适方法;
变通方法到可以用一个函数设置当前操作对象。。。但结果上更加麻烦
[解决办法] 探讨 没想好怎么弄这个。 引用:用一个函数设置当前操作对象