构造函数会影响性能吗?

use*_*263 5 c++ optimization performance constructor initialization

我有3个成员变量声明为public的类,我最初可以在代码中的任何地方显式显示,我仍然使用初始值编写构造函数这个构造函数会影响性能开销吗?

class ABC{
    public:
    int a;
    int b;
    int c;

    ABC (): a(0) , b(0), c(0) 
    {
    }
};
Run Code Online (Sandbox Code Playgroud)

如果构造函数增加性能开销,请告诉我?

NPE*_*NPE 6

初始化可能会产生很小的成本.然而:

  1. 如果可以证明它们是不必要的,编译器可能能够消除初始化.

  2. 即使成本很低,也绝对有可能在整个应用程序的背景下完全无关紧要.您可以使用分析器来量化性能效果.

  3. 它让您确信这三个字段将始终初始化,从而消除某些类型的潜在错误.


Pau*_*ans 0

它将int's 初始化为零,这可能很好并且需要很少的时间。