Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
18.03.2015
Размер:
1.37 Кб
Скачать
#include "Date.h"
#include <iostream>
#include <ctime>
using namespace std;

int main()
{  
	Date date = {9, SEP, 2011};

	//===== Создание альтернативного имени для переменной date

	Date& rDate = date;

	rDate.yyyy++; // все изменения rDate отражаются на переменной date

	cout << "rDate after: ";
	printDate(&rDate);
	cout << endl;

	cout << " date after: ";
	printDate(&date);   // rDate и date - это разные способы обратиться
	                   // к одному и тому же участку памяти
	cout << endl;

	
	//===== Использование константной ссылки, чтобы гарантировать, что объект не изменится

	const Date& crDate = date;

	printDate(&crDate); // ОК. Функция принимает указатель на константу,
	                    // и мы передаём константную ссылку

//	crDate.yyyy++;  // Ошибка компиляции! Нельзя менять объект посредством
					// константной ссылки
	

	//===== Направить ссылку на нужный нам объект

	Date date1 = {9, SEP, 2011};
	Date currentDate = getCurrentDate();


	// Вопрос. Как работать с такой датой:
	// date1, если эта дата в прошлом,
	// или currentDate, если date1 в будущем?

	// Вариант - создать ссылку на нужную дату:

	Date& actualDate = (compareDates(&date1, &currentDate) < 0 ? date1 : currentDate);
	
	printDate(&actualDate);

	// ... другие действия над переменной-ссылкой actualDate

}

Соседние файлы в папке 01_references
  • #
    18.03.20154.18 Кб27CppProject.vcxproj
  • #
    18.03.20151.16 Кб27CppProject.vcxproj.filters
  • #
    18.03.2015143 б27CppProject.vcxproj.user
  • #
    18.03.20152.04 Кб28Date.cpp
  • #
    18.03.2015873 б27Date.h
  • #
    18.03.20151.37 Кб27main.cpp