在单独的函数或构造函数中初始化

时间:2011-12-23 23:21:50

标签: c++ coding-style initialization

在C ++中,或者一般来说,以下两种方法中哪一种被认为是更好的风格?为什么?

方法1

// Instantiate an Application object
Application application;

// Initialise the Application
application.initWithParams(
    "WindowTitle",
    800,
    600
);

方法2

// Instantiate and initialise an Application object
Application application =  *new Application(
    "WindowTitle",
    800,
    600
);

PS:这段代码将直接进入我的主要功能。我还没有测试过方法二,我不知道在C ++中是否有更好的方法可以做到这一点?

编辑:方法3 (来自Pubby)

// Instantiate an Application object
Application application(
    "WindowTitle",
    800,
    600
);

2 个答案:

答案 0 :(得分:4)

为什么不呢?

// Instantiate an Application object
Application application(
    "WindowTitle",
    800,
    600
);

(首先通常可以避免。永远不要使用第二个)

答案 1 :(得分:1)

我个人会选择构造函数和参数,因为另一种方法可能会使您的对象处于未知状态。如果获得的参数太多,可以将它们包装在ApplicationParameter类中。