Как я должен вернуть объект из функции преобразования, если класс возвращаемого объекта определяется позже?

class time24;
class time12
{
operator time24()
 {
  ...
  return time24(temp)   // error
 }
}

class time24
{
 ...
};

ошибка C2440: '': невозможно преобразовать из 'int' в 'time24'

как еще я могу вернуть объект, чтобы преодолеть эту ошибку


person Nirvan    schedule 16.04.2012    source источник


Ответы (1)


Вы перемещаете реализацию после определений классов в файле реализации:

//header.h
class time24;
class time12
{
    operator time24();
}

class time24
{
 ...
};

//implementation.cpp
#include "header.h"
time12::operator time24()
{
   return time24(temp)   // error
}

Я предполагаю, что вы хотели реализовать operator time24().

person Luchian Grigore    schedule 16.04.2012