Init в отдельной функции или в конструкторе - PullRequest
0 голосов
/ 24 декабря 2011

В 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 ]

4 голосов
/ 24 декабря 2011

Почему бы и нет?

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

(обычно можно избежать первого. Никогда не используйте второе)

1 голос
/ 24 декабря 2011

Лично я бы пошел за конструктором и аргументами, так как другой подход может оставить ваш объект в неизвестном состоянии.Если вы получаете слишком много аргументов, вы можете заключить их в класс ApplicationParameter.

...