05 классы 3
.pdf05 – 1
2.9. Побитовое копирование объекта
class Date { int day; int month; int year;
public:
Date(int=1, int=1, int=2004); void print();
};
05 – 2
Date::Date(int d, int m, int y)
{
day = d; month = m; year = y;
}
05 – 3
void Date::print()
{
cout << day << ”-”
<<month << ”-”
<<year;
}
05 – 4
int main()
{
Date d1(1,5,1990), d2;
//d1 содержит дату 1-5-1990
//d2 содержит дату 1-1-2004
//по умолчанию
cout << ”d1 = ”; d1.print();
cout << endl;
05 – 5
cout << ”d2 = ”; d2.print();
cout << ” (до копирования)” << endl;
d2 = d1; |
// побитовое копирование |
|
// d1 в d2 |
cout << ”d2 = ”; d2.print();
cout << ” (после копирования)”;
return 0;
}
05 – 6
d1 = 1-5-1990
d2 = 1-1-2004 (до копирования) d2 = 1-5-1990 (после копирования)
05 – 7
2.10. Константные объекты и ФЭ
Пример. Создание константного объекта
const Date d(1,1,2004);
Пример. Описание константной ФЭ класса
int Date::getDay() const { ... }
05 – 8
Пример:
сlass Inc { int count;
const int delta; //константное ДЭ public:
Inc(int=0, int=1); //конструктор void add();
void print() const;//константная ФЭ };
05 – 9
Inc::Inc(int c, int):
delta(2*d+1) // инициализатор
// элемента
{
count = c;
}
void Inc::add()
{
count += delta;
}
05 – 10
void Inc::print() const
{
cout << ”count = ” << count << ”, ”;
cout << ”delta = ” << delta << endl;
}