Почему мы различаем между копией и прямой инициализацией?

У меня есть следующие вопросы, и я надеюсь, что вы можете мне помочь. Код:

A a; //A(void) is called
A b(a); //A(const A&) is called: direct-initialization
A c = a; //A(const A&) is called: copy-initialization

Почему мы различаем эти инициализации?

1) A b(a);
2) A c = a;

Я думаю, что в этом случае оба одинаковы, потому что каждый раз вызывается конструктор копирования. Или мы отличаемся, потому что неявное преобразование может быть возможно в 2)?

Но я читал, что и в этом случае мы различаем инициализации:

3)  int a(5);
4)  int a = 5;

Почему эти разные инициализации? Заранее спасибо!

0 ответов

Другие вопросы по тегам