Как я уже упоминал в комментариях, нет смысла возвращать один int, когда вам нужно, чтобы ваша функция возвращала 3 целых числа.
Просто верните массив следующим образом:
#include <iostream>
#include <array>
struct Cal
{
typedef std::array<int,3> Date;
int day = 13;
int month = 7;
int year = 2019;
int getDay() const
{
return day;
}
int getMonth() const
{
return month;
}
int getYear() const
{
return year;
}
Date getDate() const
{
return {{getDay(),getMonth(),getYear()}};
}
};
int main()
{
Cal c;
for (auto &&i : c.getDate())
std::cout<< i <<" ";
std::cout<<std::endl;
}
Код выводится:
13 7 2019
Кроме того, будет лучше, если вы просто вернете фактические члены вместо вызова функций получения. Помимо функции getDate()
также является членом класса.
Date getDate() const
{
return {{day,month,year}};
}
Пример кода онлайн: https://rextester.com/WPXX24681