c++中的私有函数与静态函数
Private vs. Static functions in C++
在类中使用private
(可能也是static
)函数是否有任何优势,用于在我的类中使用的实用函数,不需要访问实例的数据,而在实现类的.cpp
文件中使用全局static
函数?
对我来说,第一个听起来更清晰,但第二个更有意义,因为这些函数甚至不需要在.h
文件中提到。
如果不需要,我不会将私有静态函数放在头文件中。它们只会污染头文件并增加更多的工作。
但是,当你在一个类中有一个模板方法/函数,并且想在其中使用该辅助函数时,可能需要私有静态函数。
使用私有静态函数而不是全局静态函数的另一个原因是它们可以访问私有类成员(变量、函数)。
如果给定的函数与您的class
相关,那么您是对的。你应该让它们在你的class
正文中成为private static
。
namespace
或另一个Util类中,并将其保留在文件范围内]
让它们成为文件静态函数。如果它们与类没有任何关系,就不要放在那里。
如果私有函数不修改类成员,那么它与全局静态函数相比没有任何优势。课堂内外没有区别
相关文章:
- enable_if转换构造函数(静态强制转换,is_base_of)
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 检查编译时是否存在静态函数
- 名称隐藏对静态函数继承的实例使用
- 内联函数的函数本地静态对象是否在共享对象文件之间共享?
- 如果 C 函数仍然可以间接执行(通过回调函数),那么将它声明为静态函数是否是一种不好的做法?
- 在C++中使用非静态类函数的函数
- 类中静态函数C++意外结果
- 在工人类中使用不同类的静态函数进行实验
- 类 Referention 中C++回调函数引用非静态函数
- 指向模板上下文中的成员函数或静态函数的指针
- 如何检测 Clang AST C++中的静态函数
- 内联asm编译器屏障(内存阻塞器)是算作外部函数,还是算作静态函数调用
- 声明和定义函数静态会产生"undefined reference to function_name()"
- 如何在静态函数中使用成员函数数组
- (2 问题)"类"类型重新定义(即使 #pragma 一次),以及静态函数内的静态成员对象初始化?
- 生成代码(在编译时)以调用模板的每个实例化的静态函数
- C++无法访问或使用静态函数
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- C++ - 模板类 -> 静态函数 -> 静态函数指针的链接错误