Нашел такое решение:
Код:
#include <iostream>
class Date
{
public:
Date(int, char, int);
Date(int, int, int);
void print() const;
void printChar() const;
void setDate(int, int, int);
private:
int day;
int month;
int year;
};
Date::Date(int dd, int mm, int yyyy)
{
day = dd;
month = mm;
year = yyyy;
}
Date::Date(int dd, char mm, int yyyy)
{
day = dd;
month = mm;
year = yyyy;
}
void Date::setDate(int dd, int mm, int yyyy)
{
day = dd;
month = mm;
year = yyyy;
}
void Date::print() const
{
if(month >= 0)
std::cout << day << "/" << month << "/" << year << std::endl;
else
std::cout << day << "/" << year << std::endl;
}
void Date::printChar() const
{
std::cout << day << "/" << char(month) << "/" << year << std::endl;
}
int main()
{
setlocale(LC_ALL,".1251");
char _month[]="январь";
Date d(2,12,2000);
std::cout << _month[0] << std::endl;
Date d3(1, _month[0],1991);
d.print();
d3.printChar();
system("pause");
return 0;
}
только вот одна проблема:
в Date могу передать только одну букву названия месяца.
Так что думаю тут без * никак так как надо передавать массив. Или есть другой "правильный путь"?