防止在初始化之前使用函数,在C中使用类似构造函数
发布时间:2020-12-16 10:17:00 所属栏目:百科 来源:网络整理
导读:这是我防止funA,funB,funC等在初始化之前使用的方式 #define INIT_KEY 0xC0DE //any number except 0,is okstatic int initialized=0;int Init(){ //many init task initialized=INIT_KEY;}int funA(){ if (initialized!=INIT_KEY) return 1; //..}int funB(
这是我防止funA,funB,funC等在初始化之前使用的方式
#define INIT_KEY 0xC0DE //any number except 0,is ok static int initialized=0; int Init() { //many init task initialized=INIT_KEY; } int funA() { if (initialized!=INIT_KEY) return 1; //.. } int funB() { if (initialized!=INIT_KEY) return 1; //.. } int funC() { if (initialized!=INIT_KEY) return 1; //.. } 这种方法的问题在于,如果在循环内调用其中一些函数 这是一个很好的例子,为什么构造函数是有用的哈哈,如果它是一个对象,我会确定它在创建时,初始化被调用,但在C中,我不知道如何做. 欢迎任何其他想法! 解决方法
使用指针功能.
在构造时,将函数指向函数 我已经使用指向类中成员函数的指针数组来完成此操作.该类有一个内部整数,表示它所处对象的状态.整数用于下标成成员函数的指针数组…状态0执行init.状态1,工作,状态2将事情重新设置为状态1. 它干得很干净. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |