关于#c++#的问题:项目中使用了C++开发,就是用静态函数做一些处理

项目中使用了C++开发,使用了大量的“静态函数”,就是用静态函数做一些处理,调用这些静态函数的时候参数都使用的是“引用传递”,如 : ABC:test(x); test的定义是 test(User& user);
但是中途没有创建太多对象。

C++静态函数有没有必要修改为非静态的,就是怕静态函数太多对内存和栈有影响 ,

我总结了一下,@Huazie @silklove1) 静态是主要目的是为了全局共享访问,独立与对象存在。静态和单例共享唯一的存在,它们是二选一的,各有优点。
(2"静态的变量"是全局的,只要程序运行就一直占用资源的,停止程序才会释放。
        静态的变量存储在数据区(常量区、全局区、静态区),它在编译期初始化,首次使用的时候进行构造。
(3"静态的函数",既然是函数,既不是存放在堆,也不在栈里,是在代码区,
        静态成员函数和非静态成员函数都是在类的定义时放在内存的 "代码区"的,只是有this指针的区别。
        优化内存不应该"关心函数",而是应该专注于对象的生存周期。
(3) 程序的性能和是不是静态函数、静态变量没有直接关系,只是static方法或者属性越多,
        在一开始就会分配固定的内存空间,那么大部分的内存空间分配给了static,剩下的内存空间就不多了,
        从这个角度看它是占用了多的内存。但是这和内存溢出没有直接关系(这是另个话题)。
(4) 一般情况下静态函数或类成员静态不会增大程序体积,在编译时, 只会在代码段编译一次,所以静态不会增加程序负担。
        但是模板类中使用静态函数,这会随着类模板的不同形参进行内嵌编译,在提高程序性能的同时而造成程序编译体积增大。
(5) 一般来说,C++是面向对象的语言,全局性的一般少用,因为它(静态函数)虽然"方便"——可以在整个工程内,
        任何地方使用,但同时意味着它可能被滥用,如果碰上多线程,如果保护不好,容易产生冲突意外。

结论是不会增加程序负担。静态成员函数和非静态成员函数都是在类的定义时放在内存的代码区的,因而可以说它们都是属于类的。无非就是this指针的问题,对所谓的负担没有太大的影响。
我冒昧的猜测这个程序的程序员们是从c程序员转过来的吧