Понимание MyClass x(y); где у типа MyClass
У меня есть следующий код, который является частью упражнения (о котором я спрашивал здесь).
class MyInt
{
public:
MyInt(int x) : MyValue(new int(x)){};
MyInt()
{
MyValue = 0;
}
private:
int* MyValue;
}
int main(int argc,char** argv)
{
MyInt y(1);
MyInt x(y);
.... //Mode code
}
Код компилируется и запускается (если я не забыл выложить соответствующую часть здесь). Я хотел бы понять линию
MyInt x(y);
У меня нет конструктора, который вводит MyInt, только тот, у которого нет параметров, и другой, который вводит int. MyInt не имеет определения оператора ().
Что делает компьютер в этой линии?
1 ответ
Это copy constructor
выполнено для MyInt x(y)
сгенерированный C++ для вас. Если вы не определили конструктор копирования, C++ создаст его для вас. Проверьте раздел конструктора копирования здесь.