Sinf-nomi.ob’ekt-nomi
В программе вы можете обратиться к объектному компоненту следующим образом:
Имя-класса.имя-объекта :: имя-компонента или проще
Имя объекта. Имя элемента
Например:
x.real=1.24;
x.imag=0.0;
dim[3]. Real=0.25;
dim[3]. Imag=0.0;
На функции, принадлежащие классу, ссылаются следующим образом
имя-объекта. имя-функции
Например:
X. define(0.9) (Bu holda real=0.9 va imag=0.0)
X. define(4.3,20.0) (Bu holda kompleks son 4.3+i*20.0)
Функция Display выводит на экран значения комплексных чисел.
Переменные компонента и функции компонента В качестве переменных компонента класса могут использоваться переменные, массивы, указатели.
Инициализация не разрешена, когда элементы определены. Это связано с тем, что для класса не выделяется место в памяти. При обращении к элементам компонента через функции компонента используются только их имена.Вы можете обращаться к элементам объекта, а не к элементам класса, вне класса. Это обращение может быть двух видов.
Элементы класса не нужно определять до того, как они будут использованы в функциях класса. Точно так же можно сослаться на вторую функцию без определения решения.
Права доступа к компонентам. Доступ к компонентам контролируется с помощью спецификаторов доступа. Эти спецификаторы:
Защищенный – защищенный;
Частный - частный;
Общественный – общий;
Защищенные компоненты используются при построении иерархий классов. По умолчанию спецификатор Protected эквивалентен спецификатору Private. Публичные компоненты доступны в любом месте программы.
К закрытым компонентам нельзя получить доступ извне класса. Если классы вводятся с помощью ключевого слова Struct, все их компоненты являются общедоступными, но это можно изменить с помощью спецификаторов ссылок.
Если класс определен с помощью оператора Class, все его компоненты являются закрытыми. Но это право можно изменить с помощью спецификаторов ссылок.
Используя этот спецификатор, классы обычно определяются следующим образом:
class class_name
{
int data_member; // Ma’lumot-element
void show_member(int); // Funksiya-element
};
После определения класса переменные (объекты) этого типа класса могут быть определены следующим образом:
class_name object_one, object_two, object_three;
Quyidagi misolda employee, sinfi kiritilgandir:
class employee
{
public:
long employee_id;
float salary;
void show_employee(void)
{
cout<<"Nomer: "<cout<<"Maosh: "<};
};
Этот класс имеет две переменные и один функциональный элемент.
Следующая программа создает два объекта сотрудников. Элементам данных присваиваются значения с помощью оператора точка, а затем информация о чеке сотрудника выводится на экран с помощью элемента show_employee:
#include
using namespace std;
class employee
{
public:
long employee_id;
float salary;
void show_employee(void)
{
cout<<"Nomer: "<cout<<"Maosh: "<};
};
int main()
{
employee worker, boss;
worker.employee_id = 12345;
worker.salary = 25000;
boss.employee_id = 101;
boss.salary = 101101.00;
cout<<"\n"<<"ishchi"<worker.show_employee();
cout<<"\n"<<"boss"<boss.show_employee();
return 0;
}
Определение функции компонента. Функция компонента должна быть определена в теле класса. В отличие от глобальных функций функция компонента может ссылаться на все компоненты класса. Если полное определение функции, а не только ее прототип, находится в теле класса, эта функция считается встроенной функцией. Известно, что встроенные функции не могут использовать циклы, оператор switch. Более того, такие функции не могут быть рекурсивными функциями. Для преодоления этих ограничений в тело класса помещается только прототип функции, а полное определение функции дается вне класса вместе с другими функциями, включенными в программу. Когда функция компонента определена вне класса, указывается, к какому классу она принадлежит, в следующей форме:
Имя-класса :: Имя-функции компонента
Прототип функции компонента помещается в тело класса в следующем виде:
Введите имя-функции (определение-формальных-параметров)
Вне класса функция определяется как:
Введите имя-класса :: имя-функции (спецификация формальных параметров)
{тело функции};
В классе сотрудников в предыдущем примере функция определена внутри класса. Такая функция считается встроенной функцией.
Прототип функции можно разместить внутри класса, определив функцию вне класса. Определение класса в этом случае выглядит так:
class employee
{
public:
long employee_id;
float salary;
void show_employee(void);
};
Поскольку разные функции могут использовать функции с одним и тем же именем, перед именем функции должно стоять имя класса и символ оператора глобального доступа (::).
void employee::show_employee(void)
{
cout<<"Nomer: "<cout<<"Maosh: "<};
Если функция определена вне класса, в определении функции должно быть указано слово встроенный, чтобы рассматривать ее как встроенную функцию.
Следующая программа помещает определение функции show_employee вне класса, а встроенное слово отображается явно:
#include
using namespace std;
class employee
{
public:
long employee_id;
float salary;
void show_employee(void);
};
inline void employee::show_employee(void)
{
cout<<"Nomer: "<cout<<"Maosh: "<};
int main()
{
employee worker, boss;
worker.employee_id = 12345;
worker.salary = 25000;
boss.employee_id = 101;
boss.salary = 101101.00;
cout<<"\n"<<"ishchi"<worker.show_employee();
cout<<"\n"<<"boss"<boss.show_employee();
return 0;
}
Do'stlaringiz bilan baham: |