|

30精币
各位大牛,我刚接触易语言,对其还不太清楚,特请教各位高手几个问题。
1. 一个是关于易语言当中的内存管理问题,我看了一些文档,似乎都没有提及对象的创建和销毁问题,那么,易语言当中是不能创建指针类型的对吗?也就是说,程序员无需,也无法自己管理内存,那么如果我创建一个对象,但是这个方法结束之后我不想销毁他,给其他方法销毁,这是不可能的对吧?这种情况我们只能创建一个全局对象?那么对象何时销毁?易语言有一个垃圾回收器????或者我们根本就不能在堆上分配内存?
2. 既然易语言可以创建“指向子程序的指针”这种类型,那么我们是否可以理解为这是“函数指针”?如果可以,是否我们可以制作类似“函数指针表”的方式调用函数?就像这样:
- <font size="4"><span style="font-family: 新宋体;">/* function table */</span>
- <span style="font-family: 新宋体;">typedef struct _ftable{</span>
- <span style="font-family: 新宋体;"> int func_id;</span>
- <span style="font-family: 新宋体;"> char name[10];</span>
- <span style="font-family: 新宋体;"> double (*func)(double);</span>
- <span style="font-family: 新宋体;">}function_table;</span>
- <span style="font-family: 新宋体;">function_table func_tb[] = {</span>
- <span style="font-family: 新宋体;"> {0, " sin", sin},</span>
- <span style="font-family: 新宋体;"> {1, " cos", cos},</span>
- <span style="font-family: 新宋体;"> {2, " tan", tan},</span>
- <span style="font-family: 新宋体;"> {3, " log", log},</span>
- <span style="font-family: 新宋体;"> {4, "log10", log10},</span>
- <span style="font-family: 新宋体;"> {5, " sqrt", sqrt},</span>
- <span style="font-family: 新宋体;"> {6, " exp", exp}</span>
- <span style="font-family: 新宋体;">};</span>
- <span style="font-family: 新宋体;">//调用时:</span>
- <span style="font-family: 新宋体;">result = func_tb[0].func(cal_num);</span>
- </font>
复制代码
3. 我个人喜好在类中创建一个静态函数指针,用于在多线程中回调对象,易语言能否实现?就像这样:
class A{
public:
static void callback_function(void *obj, char *inData); // obj就是A的对象
};
然后在其他某个地方处理完之后,回调A的callback_function,让A自己处理后续事情。
这是不可能的吧?呵呵,三个问题,三十分吧!
|
|