Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция 1

.pdf
Скачиваний:
16
Добавлен:
07.02.2016
Размер:
3.14 Mб
Скачать

Объект

переменная класса

обладает

состоянием,

поведением

идентичностью.

Объявление объекта

Объявление объекта:

Имя_класса имя_объекта;

имя объекта : Имя класса

Lamp l1,l2; Robot r1, r2;

Computer comp[15];

Создание объекта

l1 : Lamp

state : bool

r1 : Robot

nazn : char prod : char height : int weight : float

l2 : Lamp

state : bool

r2 : Robot

nazn : char prod : char height : int weight : float

 

 

 

 

 

 

 

 

 

 

 

 

r[0] : Robot

r[1] : Robot

r[2] : Robot

 

 

 

 

 

 

 

nazn : char

nazn : char

nazn : char

 

 

prod : char

prod : char

prod : char

 

 

height : int

height : int

height : int

 

 

weight : float

weight : float

weight : float

 

 

 

 

 

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

имя_объекта.Имя_метода(); указатель_на_объект->Имя_Метода(); имя_объекта.свойство=значение();

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

int main(){ Lamp l1,l2; l1.state=true; l2.state=true; return 0;

}

Lamp

-state : bool

+urnOn() : void +TurnOff() : void +IsTurned() : bool

int main(){ Lamp l1,l2; l1.TurnOn(); if(l1.IsTurned()){ l2.TurnOn(); l1.TurnOff();

}

return 0;

}

Конструктор

вызывается при первоначальном создании объекта класса

имя совпадает с именем класса

не имеет возвращаемого значения

Пример1. Конструкторы

#include <iostream> using namespace std; class MyClass{

int i,j; public:

MyClass (){i=j=0;}

void Init(int a, int b){i=a; j=b;} void Show();

};

void MyClass::Show()

{

cout<<"i="<<i<<"j="<<j<<'\

n';

}

int main(])

{

MyClass a; a.Init(10,20); a.Show();

return 0;

}

a : MyClass

i : int = 0 j : int = 0

a : MyClass

i : int = 10 j : int = 20

Пример1. Конструкторы

#include <iostream>

using namespace std; class MyClass{

int i,j; public:

MyClass(){i=j=0;}

void Init(int a, int b){i=a; j=b;}

void Show() {cout<<"i="<<i<<"j="<<j <<'\n';}

};

 

arr[0] : MyClass

ar[1] : MyClass

arr[2] : MyClass

 

 

 

 

int main()

i : int = 0

i : int = 0

i : int = 0

j : int = 0

j : int = 0

j : int = 0

 

 

 

 

 

{ MyClass arr[3]; int i;

for (i=0;i<3;i++) arr[i].Init(i+1, i*10);

for (i=0;i<3;i++) arr[i].Show(); cin.get();

return 0;

}

Свойства конструкторов

Конструктор можно перегружать

Конструктор может иметь параметры.

имя_класса имя_объекта(список аргументов);

MyClass::MyClass(int a, int b){ i=a; j=b;

}

MyClass::MyClass(int a){ i=j=a;}

MyClass::MyClass(){

i=j=0;}

Конструкторы с параметрами

#include <iostream> using namespace std; class MyClass{

int i,j; public:

MyClass(){i=j=0;}

MyClass(int a, int b){i=a;j=b;} void Init(int a, int b){i=a; j=b;} void Show();};

void MyClass::Show() {cout<<"i="<<i<<" j="<<j<<'\n';}

 

 

obj1 : MyClass

 

obj2 : MyClass

 

 

 

 

 

int main()

i : int = 0

 

i : int = 3

 

 

 

{

 

j : int = 0

 

j : int = 4

 

 

 

 

 

 

 

MyClass obj1, obj2(3,4), obj3(5,6);

cout<<"Start value\n"; cout<<"obj1 - "; obj1.Show(); cout<<"obj2 - "; obj2.Show(); cout<<"obj3 - "; obj3.Show(); cout<<"Init obj1\n";

obj1.Init(10,20); cout<<"obj1 - "; obj1.Show();

obj3=obj2; cout<<"obj3=obj2\n"; cout<<"obj3 - "; obj3.Show();

return 0;

}

obj1 : MyClass

i : int = 10 j : int = 20

obj3 : MyClass

i : int = 3 j : int = 4

obj3 : MyClass

i : int = 5 j : int = 6