Я изучаю C ++, но есть проблема с инициализацией копирования, которая действительно смущает меня. Ниже приведен класс, который я создал.
class Example{
public:
Example(initializer_list<int> il) {cout<<"constructor"<<endl;}
Example(const char *) {cout<<"constructor"<<endl;}
Example(const Example &) {cout<<"copy constructor"<<endl;}
};
Конструктор и конструктор копирования будут вызваны, если код выглядит следующим образом, Пример ex = "Hello world". Однако, если код является примером ex = {0,1,2,3}, будет вызван только конструктор, а не конструктор копирования. Кто-нибудь объясняет? Я бы очень признателен.