```
#include <iostream>
using namespace std;
class samp {
int i;
public:
samp(int n) { i = n; }
int get_i() { return i; }
};
samp input() {
int x;
cout << "Enter a number: ";
cin >> x;
samp obj(x);
return obj;
}
int main() {
samp ob = input();
cout << "Number entered: " << ob.get_i() << endl;
return 0;
}
```
Ошибка в данном коде заключается в том, что при возврате объекта типа `samp` из функции `input()`, происходит вызов конструктора копирования, чтобы создать временный объект. Однако, в классе `samp` не определен конструктор копирования, поэтому возникает ошибка компиляции.
Чтобы исправить данную ошибку, нужно определить конструктор копирования в классе `samp`. Вот как это можно сделать:
```
#include <iostream>
using namespace std;
class samp {
int i;
public:
samp(int n) { i = n; }
samp(const samp& s) { i = s.i; } // Конструктор копирования
int get_i() { return i; }
};
samp input() {
int x;
cout << "Enter a number: ";
cin >> x;
samp obj(x);
return obj;
}
int main() {
samp ob = input();
cout << "Number entered: " << ob.get_i() << endl;
return 0;
}
```
После добавления конструктора копирования код должен успешно скомпилироваться и работать корректно.