Вот мой код на C ++
#include<iostream>
class Test{
int i;
public:
Test() { }
Test(int i){
std::cout << "Constructor called" << std::endl;
this->i = i;
}
void print(){
std::cout << i << std::endl;
}
};
int main(){
Test t = 3;
t.print();
return 0;
}
Меня забавляло, когда Test t = 3;
работал. Я не понимаю, почему он не дает ошибки компиляции.
У меня сложилось впечатление, что объект класса Test
должен быть создан одним из следующих способов. Существуют ли другие способы создания объекта класса Test
, не описанные в следующем списке?
Test t1;
Test t2(2);
Test t3 = Test(3);
Test t4(t3);
Test t5 = Test(t4);
Test t6{2};
Test t7 = Test{3};
Test t8{t3};
Test t9 = Test{t4};
Test t10 = {10};