Раздел «Язык Си».Classes2:

Работа с объектами

В предыдущем уроке функции получали объекты как параметры и могли с ними что-то делать.

Как раньше был устроен объект?

class Point {
  public:
    int x;
    int y;
};
void printPoint(Point p) {
    cout << '(' << p.x << ',' << p.y << ')'<<endl;
int main() {
    Point a, b; // При создании объекта не знаем чему равны х и у этих точек
    a.x = 10; a.y = -10;
    printPoint(a);
}

Пусть у нас будет не бесконечная плоскоть, а коробка -100≤x≤100 и -100≤y≤100. Точка не может попасть за эти стенки.

Кто-то напишет правильно: a.x=0; a.y=10;

А кто-то ошибется: b.x=-1000;

Хотим сделать класс точек таким, чтобы никто не мог ошибиться.

Надо защитить координаты точки и написать функцию, которая будет проверять - правильные мы точки делаем или нет. Эта функция должна принадлежать объекту .

Если объект стул, то у него должна быть функция move.
Если объект телефон, то у него должна быть функция позвонить.
Придумаем, какие функции должны быть у объекта точка :

Прячем переменные (поля) объекта

Доступны снаружи класса поля и функции (методы), которые написаны после слова public

Функции В классе называются "методы"

Значит, сначала напишем х и y, а потом, после public, напишем методы (скажем, какие методы у этого объекта будут).

class Point {
// все, что написано ДО public, недоступно просто так
// атрибуты (поля) нужно закрыть
// чтобы их не испортили

    int x;   
    int y;

  public:  // доступные всем методы
    void set(int xx, int yy); 
    void print();
};

Реализуем (делаем) методы класса

 int a;
 float f;
 char z;

-- TatyanaDerbysheva - 06 May 2015