Какая функция C++ должна вернуть?

У меня есть следующий фрагмент кода:

 time_t data1 = time(0)+86400; 
 struct tm * data_emprestimo = localtime( & data1 );
 cout << "Hoje: " << data_emprestimo->tm_mday << '/' << (data_emprestimo->tm_mon + 1) << '/' << (data_emprestimo->tm_year + 1900) << endl;

Это работает хорошо.

Но мне интересно, какой тип я должен возвращать в функции, чтобы получить какой-либо ответ и поставить переменную: struct tm? Просто тм? Массив? Строка?

Я пробовал что-то вроде этого:

struct tm retornaData(int segundosAdd);
            ...
            ...
struct tm retornaData(int segundosAdd){
   return data_emprestimo;
}

но это не сработало.

И я уже много гуглил!

2 ответа

Решение
struct tm * data_emprestimo

объявляет указатель на структуру, поэтому для возврата самой структуры в качестве значения необходимо разыменовать указатель, return *data_emprestimo;,

Мне кажется, что вы хотите написать функцию, которая возвращает строковое представление даты.

В C++ std::string будет естественным типом возврата для строковых данных. Более подход в стиле C мог бы предложить передать char * в качестве буфера, в который вы хотите печатать дату - в общем случае std:: string считается более чистым и надежным подходом.

Другие вопросы по тегам