У меня есть кодоператор T() {} - не работает
class smallDOUBLE;
class smallINT
{
private:
int val;
public:
smallINT():val(0){}
smallINT(int i):val(i){}
operator smallDOUBLE() {return val;}
};
class smallDOUBLE
{
private:
double val;
public:
smallDOUBLE():val(0){}
smallDOUBLE(double i):val(i){}
operator smallINT() { return val;}
};
int main()
{
smallINT int1(10);
smallDOUBLE DBL1(123.22);
smallINT int2 = DBL1;
smallDOUBLE DBL2 = int1;
}
Здесь smallINT int2 = DBL1;
в основном работает нормально, но smallDOUBLE DBL2 = int1;
бросает ошибку говоря
возвращаемый тип smallDOUBLE является неполным
во время компиляции.
Почему operator smallINT() { return val;}
работа
тогда operator smallDOUBLE() {return val;}
не?
Приведенный выше код, если он помещен в файл cpp, не подлежит компиляции в основном. Он делает это где-то еще. Пожалуйста, отправьте код, который на самом деле демонстрирует вашу проблему и включает в себя как ошибки **, так и ** строку, в которой произошла ошибка. – Yakk
Обратите внимание, что первая ошибка указана в вашем операторе. Ошибка в главном не имеет значения (и вызвана ошибкой в операторе). Ошибки после первого редко используются. – Yakk