, Такая последовательность преобразования не может быть выведена компилятором, поскольку она может / может использовать не более одного пользовательского преобразования в последовательности преобразования.
конструктор копирования сделанprivate
затем в
Дело 1: Нет ошибок, компилятору все равно, был ли задан конструктор копирования в классе.
Случай 2: Ошибка, конструктор копирования является частным и когда это сделаноpublic
Это исключено.
Оптимизирует ли это непосредственно копию, не замечая этого, если конструктор был сделанprivate
?
#include <string>
using std::string;
class T
{
string s;
T(const T &obj):s(obj.s){}
public:
T(const string &str):s(str){}
};
int main()
{
T a = ("Copy Initialization"); //Case: 1
T b = T("Copy Initialization"); //Case: 2
}