
Int main()
{ foo f1, f2, f3; int r; // создание трех объектов // каждый объект видит одно и то же значение
cout << "Число объектов: " << f1.getcount() <<endl;
cout <<"Число объектов: " << f2.getcount() << endl;
cout <<"Число объектов: " << f3.getcount() << endl;
cin>>r;
return 0;
}
Пример класса Distance
// константные методы и константные аргументы
#include "stdafx.h"
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////
class Distance // длина в английской системе
{
private:
Int feet;
float inches;
public: // конструктор без аргументов
Distance() : feet(0), inches(0.0)
{ } // конструктор с двумя аргументами
Distance(int ft, float in) : feet(ft), inches(in)
{ }
void getdist() // ввод длины пользователем
{ cout << "\nВведите число футов: "; cin >>feet;
cout <<"Введите число дюймов: "; cin >> inches;
}
void showdist()const // вывод длины
{ cout << feet << "\'-" <<inches <<'\"'; }
Distance add_dist(const Distance&) const; // сложение
};
//------------------------------------------------------------
// сложение данного объекта с d2, возврат суммы
Distance Distance::add_dist(const Distance& d2) const
{
Distance temp; // временная переменная
// feet = 0: // Ошибка: нельзя изменить поле
// d2.feet = 0: // Ошибка: нельзя изменить d2
temp.inches = inches + d2.inches; // сложение дюймов
if( temp.inches >= 12.0 ) // если сумма превышает 12.0,
{ // то уменьшаем ее на 12.0
temp.inches -= 12.0; // и увеличиваем число футов
temp.feet =1; // на 1
}
temp.feet += feet + d2.feet; // сложение футов
return temp;
}
//////////////////////////////////////////////////////////
Int main()
{
Distance dist1, dist3; // две длины
Distance dist2(11, 6.25); // определение и инициализация dist2
dist1.getdist(); // ввод distl
dist3 = dist1.add_dist(dist2);//dist3 - distl + dist2
// вывод всех длин
cout << "\ndistl = "; dist1.showdist();
cout << "\ndist2 = "; dist2.showdist();
cout << "\ndist3 = "; dist3.showdist();
cout << endl;
return 0; }
Константные объекты
//constObj.cpp
//constant Distance objects
#include "stdafx.h"
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////
class Distance // длина в английской системе
{
private:
Int feet;
float inches;
public: // конструктор с двумя аргументами
Distance(int ft, float in) : feet(ft), inches(in)
{ }
void getdist() // неконстантный метод
{ cout << "\nВведите число футов: "; cin >> feet;
cout << "Введите число дюймов: "; cin >> inches;
} void showdist() const // константный метод
{ cout << feet <<"\'-" << inches << '\"'; } };
//////////////////////////////////////////////////////////
Int main()
{
const Distance football(300,0);
//football.getdist(): // ошибка: метод getdistO неконстантный
cout << " Длина поля равна ";
football.showdist(); //корректно
cout <<endl;
return 0; }