АС
Алексей Севостьянов

Создание 2-похожих классов по названию и интерфейсу с++

Добрый вечер, уважаемые коллеги!
В ходе работы мне требуется создать класс, который по названию и интерфейсу совпадает с классом, текст которого приведен ниже, но в которой дата хранилась бы в упакованном виде
#include
#include
using namespace std;

class Date
{
public:
enum Month {JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG,
SEP, OCT, NOV, DEC, MONTHS = 12};

private:
int dd;
Month mm;
int yyyy;

public:

Date() : dd(1), mm(Date::JAN), yyyy(1970)
{
}

Date(int d, Month m, int y) : dd(d), mm(m), yyyy(y)
{
}

Date(const Date& d2)
{
dd = d2.dd;
mm = d2.mm;
yyyy = d2.yyyy;
}

~Date()
{
}

int getYear()
{
return yyyy;
}

void setYear(int year)
{
yyyy = year;
}

int getMonth()
{
return mm;
}

void setMonth(Month month)
{
mm = month;
}

int getDay()
{
return dd;
}

void setDay(int day)
{
dd = day;
}

// функция для определения, является ли год даты високосным
bool isLeapYear();

// операция сравнения дат
bool operator < (const Date& d2);

// операция преинкремента. Увеличивает дату на один день
Date& operator ++ ();

Скажите, что здесь является интерфейсом? Честно говоря из лекций и информации в википедии я это мало понял.

Дима Данилов
Дима Данилов

По идее все публичные данные и методы и есть интерфейс класса (interface — сопряжение, поверхность раздела, перегородка - то что на поверхности, а обычно паблик так и есть)
Но вот интересно говорят сравнивая с языком ява, так как там понятие интерфейса есть в стандарте
"Касательно Java: (полезно знать как это в других ОО языках, т. к. понятия и термины часто путаются и заимствуются)
Абстрактные классы используются только тогда, когда есть "is a" тип отношений; интерфейсы могут быть реализованы классами которые не связаны друг с другом.
Абстрактный класс может реализовывать методы; интерфейс не может реализовывать методы.
Интерфейс может только описывать константы и методы, но не реализовывать их. Все методы интерфейса по-умолчанию являются публичными (public) и абстрактными (abstract), а поля - public static final.
В Java класс может наследоваться (реализовывать) от многих интерфейсов, но только от одного абстрактного класса.
С абстрактными классами вы теряете индивидуальность класса, наследующего его; с интерфейсами вы просто расширяете функциональность каждого класса. " [ссылка заблокирована по решению администрации проекта]. cyberforum. ru/cpp-beginners/thread797503-page2. html

Хотя "Это различие можно выразить,
разбив интерфейсы классов window на две части - защищенный интерфейс
и общий интерфейс: " пишет вот в "Бьерн Страуструп. Язык программирования С++"
Потому, что же имел ввиду препод еще под вопросом.

Похожие вопросы
На какой версии html сейчас верстают интерфейсы канторы по созданию сайтов (восновном) ? скажем так среднестатистически
Еще раз об интерфейсе Mail.ru
подскажите названи программы для создания графиков
Как правильнее будет разрабатывать классы графического интерфейса?
Подскажите название программы для создания похожего видео?
В чем разница между абстрактным классом и интерфейсом?
Создание распределенных приложений в C# с использованием интерфейса сокетов. Клиентская часть.
Похоже на нынешний интерфейс? см
Подскажите название мелодии. Или что-то похожее
Создание полноразмерного ярлыка в интерфейсе Metro