C++代码样式 - 创建对象的最佳位置

Cae*_*sar 3 c++ performance coding-style readability

我和我的朋友前几天正在讨论哪种代码风格更好.

案例A:

int function()
{
    largeobject a;
    //do some stuff without a
    //do some stuff with a
}
Run Code Online (Sandbox Code Playgroud)

案例B:

int function()
{
    //do some stuff without a
    largeobject a;
    //do some stuff with a
}
Run Code Online (Sandbox Code Playgroud)

那么哪个代码在速度和可读性方面更好.

ALO*_*low 10

您应该尽可能在本地声明对象的变量/实例.因此,在这种情况下,B将是最佳选择.

考虑一下,如果您在函数体的顶部声明它,那么阅读代码的其他人可能会想知道您实际使用该对象的位置.因此,通过使声明接近您实际使用的位置将使其更容易阅读.

案例A和案例B之间不应有任何巨大的性能差异.

有一些特殊情况,例如分配大块内存或线程池.在这些情况下,由于可能是时间和资源的消耗,您可能需要找到一个更好的地方来分配它们.

如果您不熟悉编程,您可能需要考虑阅读Scott Meyers的书,Effective C++.第26项讨论它:尽可能推迟变量定义.

  • 同意,但具有完整方法/功能范围的对象应直接进入函数/方法的开头 (2认同)
  • @BigMike当然,因为它将在整个方法/功能中使用 (2认同)