Форум программистов, компьютерный форум CyberForum.ru

C++ виртуальные функции - C++

Восстановить пароль Регистрация
 
iKarma
9 / 9 / 0
Регистрация: 17.10.2011
Сообщений: 114
27.11.2011, 20:00     C++ виртуальные функции #1
Помогите плиз, используя мою прогу, используя мой класс, объявить в нем функции виртуальными и дополнить программу классом, в котором будет использованы эти функции. Написать демонстрационную программу использования данных виртуальных функций. Вот код:
Код
#include "stdafx.h"
#include <iostream>
#include <conio.h>

using namespace std;

enum month {jan = 1, feb, mar, apr, may, jun, jul, aug, sep, okt, nov, dek};
class DATE
{
public:
	void Print(char smb); //вывести дату по формату ДД*ММ*ГГ, где * - char smb
	unsigned Valid(unsigned dd, month mm, unsigned yy); //проверка значений ДД.ММ.ГГ
	//static void MyMethod(DATE& MyDate);
	DATE(DATE& MyDate);
	DATE(); //инициализация датой 01.01.0001
	~DATE();
	unsigned SetDATE(unsigned dd, month mm, unsigned yy); //изменить дату
private:
   unsigned dd;
   month mm;
   unsigned yy;
   char format;
};

DATE::DATE(DATE& MyDate) //определение конструктора копии
{
	dd = MyDate.dd;
	mm = MyDate.mm;
	yy = MyDate.yy;
	format = MyDate.format;
	cout << "Copy Constructor...\n";
}

DATE::DATE():dd(01) //определение конструктора
{
	//dd = 01;
	mm = jan;
	yy = 0001;
	cout << "Constructor...\n";
}

DATE::~DATE() //определение деструктора
{
	cout << "Destructor...\n";
}

//void DATE::MyMethod(DATE& MyDate)
//{
	//MyDate.Print(MyDate.format);
	//MyDate.Print(MyDate.format);
//}

void DATE::Print(char smb)
{
	cout<<dd<<smb<<mm<<smb<<yy<<"\n";
}

unsigned DATE::SetDATE(unsigned dd, month mm, unsigned yy)
{
	this->dd = dd;
	this->mm = mm;
	this->yy = yy;
	return 0;
}

unsigned DATE::Valid(unsigned dd, month mm, unsigned yy)
{
    if (dd>31){
        return 0;
    }
    if ((mm==feb) && (dd>28) && (!(yy%4))){
        return 0;
    }
    if ((mm==feb) && (dd>29)){
        return 0;
    }
    return 1;
}

int main()
{
	cout << "Input a separator character: ";
	char format = getch();
	cout << format << "\n";
	
	DATE MyDate;
	MyDate.Print(format);
    
    cout << "Example of Date:\n";
	MyDate.SetDATE(18, jan, 1991);
	MyDate.Print(format);

	//DATE::MyMethod(MyDate);

	if (MyDate.Valid(18, jan, 1991) == 1) cout << "It's OK Date\n";
    else cout << "Date is Wrong";

	getch();
	return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 20:00     C++ виртуальные функции
Посмотрите здесь:

C++ Виртуальные функции
C++ виртуальные функции
Виртуальные функции C++
C++ Виртуальные функции
Виртуальные функции C++
C++ Виртуальные функции
C++ виртуальные и чисто виртуальные функции
Виртуальные функции C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru