繁体   English   中英

C++ 中的非成员函数与静态函数

[英]Non-member functions vs static functions in C++

我们什么时候应该使用非成员函数(或自由函数)或静态成员函数? 据我所知,在 Java 或 C# 中,我们在这种情况下使用静态成员函数,而在 C++ 中我们可以使用自由函数。 但是实际使用上有什么区别呢?

主要区别在于静态函数可以访问类的私有/受保护成员/方法。 此外,IDE 可以找到静态函数作为类的成员/方法,并且更容易编写代码。

唯一的限制是你必须用类声明静态函数,而自由函数可以自由声明。

在 Java 或 C# 中,您必须使用静态成员函数,因为无法编写不属于类的函数。

在 C++ 中,您可以选择。 几乎没有实际区别,所以决定是关于代码结构的。 您要编写的函数是否似乎属于某个类,而不属于该类的特定实例? 那么您可能需要一个静态成员函数。 它是否需要访问类中的私有静态数据? 那你肯定需要一个成员函数!

否则,它可以是适当命名空间中的自由函数。 确实应该如此,因为当命名空间可以做时,没有理由创建一个类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM