Я пытаюсь использовать конструктор шаблонов с одним параметром. Я пробую 2 случая const параметр и не const.шаблон конструктор один параметр const и не const
class Foo1
{
public:
Foo1() {}
template <typename T>
Foo1(const T& f)
{
cout<<"Foo1"<<endl;
}
};
class Foo2
{
public:
Foo2() {}
template <typename T>
Foo2(T& f)
{
cout<<"Foo2"<<endl;
}
};
int main()
{
Foo1 f1;
Foo1 f11(f1);
Foo2 f2;
Foo2 f21(f2);
}
Выход: Foo2
так по умолчанию конструктор копирования создается для Foo1 и не Foo2.
когда я изменяю основную функцию, чтобы:
int main()
{
const Foo1 f1;
Foo1 f11(f1);
const Foo2 f2;
Foo2 f21(f2);
}
Выход пуст:
так как копия Построенные geerated. Почему это поведение?