Какой из них лучше между параметрами по умолчанию и инициализацией члена, когда объявлен в закрытой секции класса C ++ 14? - PullRequest
0 голосов
/ 25 октября 2019

Функциональность обоих кодов одинакова, но какой из них более эффективен и почему?

вот обычный код:

class Account{
private:
    int balance;
    string name;
public:
     Account(int balance = 0, name = "none"); //default parameters
};

или

вот этот:

class Account{
private:
    int balance{0};
    string name{"none"}; //default values when members are declared
};

1 Ответ

1 голос
/ 25 октября 2019

Второй.

Причина: «Явно указывает, что во всех конструкторах ожидается использование одного и того же значения. Избегает повторения. Избегает проблем с обслуживанием. Это приводит к самому короткому и эффективному коду».

См. Основные принципы CPP для более подробной информации: C.48: Предпочитайте инициализаторы в классе инициализаторам-членам в конструкторах для постоянных инициализаторов

...