头文件中声明静态函数

头文件中声明静态函数,第1张

是可以调用的,我 测试 过

而且头文件里面有方法的 实现,这个方法还 必须写成static,原因是,如果有多 个源文件include这个头文件的话,那么就会报 重定义的错误,加上static,就会只保留一份,不会报错 了(当然如果 头文件里的实现方法只给一个源文件 用,不加static也不会有问题)

我就说下常用情况吧

类中全部是静态方法,一般这个类的作用也就类似于思维上的一个命名空间了,一般工具类会使用这种方法,比如数学算法

举例:

CMath::translate()

CMath::move(x, y),

CMath::isEqual(x, y)

使用静态变量做单例,使用静态函数创建和释放单例,这样在逻辑上,这个单例属于一个类,而这个类是一个单例,在程序中仅存一份,也勉强算的上符合“谁创建谁释放”的原则了吧

举例: static CInstance CInstance::m_myInstance = NULL

//创建单例

CInstance  CInstance::getInstance(someVal)//声明处也是静态

{

if(m_myInstance == nullptr)

{

m_myInstance = new CInstance(someVal)        

}

return m_myInstance

}

//释放单例

void   CInstance::destroyInstance(someVal)//声明静态

{

if(m_myInstance != nullptr)

{

delete m_myInstance       

}

m_myInstance = nullptr

}

3.第三种情况呢,就是在一个类中,需要处理某块逻辑,于是把这块逻辑封成一个函数,但是发现这块逻辑与类中的成员变量毫无关系,而且这块逻辑可能又会在别的类中被调用,也类似于算法或者功能类的东西,就可以把这个函数提成静态函数,供其它类使用。

简单回忆了一下,大体就见过这么几种情形吧。

上面代码未进行编译,大体就是表达意思的伪代码,领会即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8045185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存