c ++全局函数和OOP?

Ton*_*ion 4 c++ oop

在C++中,可以有一个'GLOBAL FUNCTION',这意味着它不属于任何类.我想知道这是否违反了OOP的基本原则?

使用类中静态的全局函数或函数会有什么不同?我认为后者更多面向OOP.但是我可能错了......

编写多线程应用程序时难道不会变得更难吗?

Nik*_*kko 8

类中的静态函数作为OO作为模块内的全局函数.事情是在JAVA,你没有选择.

在C++中,您可以将全局函数封装在命名空间中,您不需要虚拟类来执行此操作.这样你就具有模块化.

所以当然你可以把命令放在命名空间之外,就像你有真正的全局函数一样.但这与具有一系列静态功能的JAVA厨房水槽类没有太大区别.它也是糟糕的代码,但对于小项目来说可以正常:)

同样在C++中,你有很多选择来拥有"全局"函数,它实际上是作为运算符函数链接到类,可以是例如类的朋友.

编辑 对于多线程,您必须担心全局变量,而不是函数.