Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodicheskie_ukazaniaOOP_1_chast.doc
Скачиваний:
6
Добавлен:
23.11.2019
Размер:
743.42 Кб
Скачать

Id_класса id_объекта;

и пусть в составе класса есть метод с идентификатором ID_метода.

Тогда:

1. Прямой вызов метода

Id_объекта. Id_метода;

- использована операция привязки «точка».

2. Использование косвенной адресации Пусть объявлен указатель с типом ID_класса:

ID класса * ID_указателя;

Теперь указатель типа ID_класса можно устанавливать на существующие объекты этого класса:

ID_указателя = & ID_объект;

- указатель идентифицирован адресом объекта.

Косвенный вызов метода:

ID__указателя -> ID_метода;

- использована операция привязки «стрелка».

3. Создание объектов (безымянных) в динамической области памяти

ID класса * ID_указателя = new ID_класса;

Компилятор создает объект на этапе работы проекта. Косвенный вызов метода:

ID_указателя -> ID_метода;

Пример класса

#include <iostream.h>

class kls

{ int sm; // по умолчанию предполагается private

intm[5];

public:

void inpt(int i) // функция ввода данных в компоненту m класса

{ cin >>m[i]; }

int summ(); // прототип функции summ

int kls: :summ() // описание функции summ

{ sm=0; // инициализация компоненты sm класса

for(int i=0; i<5; i++) sm+=m[i];

return sm;}

void main()

{ kls k1,k2; // объявление объектов k1 и k2 класса kls

int i;

cout<< "Вводите элементы массива ПЕРВОГО объекта : ";

for(i=0;i<5; k1. inpt(i++)); // ввод данных в первый объект

cout<< "Вводите элементы массива ВТОРОГО объекта : "; for(i=0;i<5; k2.inpt(i++)); // во второй объект

cout<<"\n Сумма элементов первого объекта (k1) = " << k1.summ(); cout<<"\n Сумма элементов второго объекта (k2) = " << k2.summ();

}

Задание к лабораторной работе № 8

Общая постановка. Написать программу, иллюстрирующую прямой и кос­венный способы обращения к методам. Пользовательский класс должен содержать необходимые элементы-данные, метод установки их начальных значений:

void Set (double X,...); метод печати:

void Print (void);

метод, решающий поставленную задачу:

void Run (void);

Коды методов - вне пространства определения класса.

…….

class X{

…..

public:

void Set(double X, ...);

void Print(void);

void Run(void);

};

……..

#include <math.h>

void X::Run(void) {

double dop, a, b, c;

puts(" Работа 1 - Линейный алгоритм ");

dop = fabs(y-x);

а = pow(x, y+l) + exp(y-l);

b = 1 + x*fabs(y-tan(z));

с = 0.5*pow(dop,2) - pow(dop,3)/3;

rezult = a/b*(l+dop) + c;

}

где x, y, z, rezult - вещественные элементы-данные класса X.

Постановка задачи

Составить метод Run для вычисления выражения.

1.

2.

3.

4.

При , ,

5.

При x=-15,246 y=4,642* z=20,001* α=-182,036

6.

, y=-2.75, z=0.15

7.

При x=0,1722; y=6,33; z=3,25*10-4; F=-205,305

8.

При , , , .

9.

При

10.

При x=6,251 y=0,827 z=25,001 b=0,7121

11.

При x=3,251, y=0,325, z=0,466

12.

X = 17,421 y = 0,010365 z = 82800 f = 0,33056

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]