Программирование на С++ в среде Windows

1.

Бийский технологический институт
Программирование на С++ в среде
Windows
Сыпин Евгений Викторович, к.т.н., профессор каф. МСИА
1
659305, Россия, Алтайский край, г.Бийск, ул.Трофимова 27, ауд. 301-Б
Тел./факс: (3854) 432 450, e-mail: [email protected], www.msia-bti.ru

2.

Передача объектов в функцию. Вариант 1.
class time
{
private:
char chas, min;
public:
time () : chas (12), min(53) {}
time (char ch, char m) : chas (ch), min(m) {}
void addTime (time t1)
{
min+=t1.min;
chas+=t1.chas;
if (min >= 60)
{min-=60; chas++;}
if (chas>=24)
chas-=24;
} };
main ()
{
time time1, time2 (10,12);
time1.addTime(time2);
time2.addTime(time1);
}
2

3.

Передача объектов в функцию. Вариант 2.
class time
{
private:
char chas, min;
public:
time () : chas (12), min(53) {}
time (char ch, char m) : chas (ch), min(m) {}
void addTime (time t1)
{
t1.min+=min;
t1.chas+=chas;
if (t1.min >= 60)
{t1.min-=60; t1.chas++;}
if (t1.chas>=24)
t1.chas-=24;
} };
main ()
{
time time1, time2 (10,12);
time1.addTime(time2);
time2.addTime(time1);
}
3

4.

Передача объектов в функцию. Вариант 3.
class time
{
private:
char chas, min;
public:
time () : chas (12), min(53) {}
time (char ch, char m) : chas (ch), min(m) {}
void addTime (time t1, time t2)
{
min=t1.min+t2.min;
chas=t1.chas+t2.chas;
if (min >= 60)
{min-=60; chas++;}
if (chas>=24)
chas-=24;
} };
main ()
{
time time1, time 2(10,12), time 3;
time3.addTime(time1, time2);
}
4

5.

Возвращение объектов из функции. Вариант 1.
class time
{
private:
char chas, min;
public:
time () : chas (12), min(53) {}
time (char ch, char m) : chas (ch), min(m) {}
time addTime (time t1)
{
time temp;
temp.min=t1.min+min;
temp.chas=t1.chas+chas;
if (temp.min >= 60)
{temp.min-=60; temp.chas++;}
if (temp.chas>=24)
temp.chas-=24;
return temp;} };
main ()
{
time time1, time 2(10,12), time 3;
time3=time1.addTime(time2);
}
5

6.

Возвращение объектов из функции. Вариант 2. Безымянный объект.
class time
{
private:
char chas, min;
public:
time () : chas (12), min(53) {}
time (char ch, char m) : chas (ch), min(m) {}
time addTime (time t1)
{
char c, m;
m=t1.min+min;
c=t1.chas+chas;
if (m >= 60)
{m-=60; c++;}
if (c>=24)
c-=24;
return time (c,m);} };
main ()
{
time time1, time 2(10,12), time 3;
time3=time1.addTime(time2);
}
6

7.

Структуры и классы
class time
{
char chas, min;
public:
time addTime (time t1);
};
struct time1
{
time addTime (time t1);
private:
char chas, min;
};
7

8.

Классы, объекты и память
8

9.

Статические поля класса
class time
{
private:
char chas, min; static int count;
public:
time () : chas (12), min(53) {count++;}
time (char ch, char m) : chas (ch), min(m) {count++;}
time addTime (time t1);
int getCount () {return count;}
};
int time::count=0;
main ()
{
time time1;
cout << time1.getCount() << endl;
time time2(10,12);
cout << time2.getCount() << endl;
time time3;
cout << time3.getCount() << endl;
return 0;
}
9

10.

Статические и автоматические поля класса
10

11.

Константные методы
class time
{
private:
char chas, min; static int count;
public:
time () : chas (12), min(53) {count++;}
time (char ch, char m) : chas (ch), min(m) {count++;}
time addTime (time t1);
int getCount () const {return count;}
char getChas () const {return chas;}
};
int time::count=0;
main ()
{
time time1;
cout << time1.getCount() << endl;
time time2 (10,12);
cout << time2.getCount() << endl;
time time 3;
cout << time3.getCount() << endl;
return 0;
}
11

12.

Константные объекты
class time
{
private:
char chas, min; static int count;
public:
time () : chas (12), min(53) {count++;}
time (char ch, char m) : chas (ch), min(m) {count++;}
time addTime (time t1);
int getCount () const {return count;}
char getChas () const {return chas;}
};
int time::count=0;
main ()
{
time time1;
cout << time1.getCount() << endl;
const time time2(10,12); // Можно ли менять count?
cout << time2.getCount() << endl;
time time 3;
cout << time3.getCount() << endl;
return 0;
}
12

13.

Указатели на объекты
class time
{
private:
char chas, min;
public:
time () : chas (12), min(53) {}
time (char ch, char m) : chas (ch), min(m) {}
char getChas () const {return chas;}
char getMin () const {return min;}
};
main ()
{
time* time1; time1=new time;
cout << time1->getChas() << “:”;
cout << (*time1).getMin() << endl;
return 0;
}
13

14.

Массив указателей на объекты
class time
{
private:
char chas, min;
public:
time () : chas (12), min(53) {}
time (char ch, char m) : chas (ch), min(m) {}
char getChas () const {return chas;}
char getMin () const {return min;}
};
main ()
{
time* time1[5]; time1 [2]=new time;
cout << time1[2]->getChas() << “:”;
cout << (*(time1+2)).getMin() << endl;
return 0;
}
14

15.

Бийский технологический институт
СПАСИБО ЗА ВНИМАНИЕ!
Сыпин Евгений Викторович, к.т.н., профессор каф.МСИА
15
659305, Россия, Алтайский край, г.Бийск, ул.Трофимова 27, ауд. 301-Б
Тел./факс: (3854) 432 450, e-mail: [email protected], www.msia-bti.ru
English     Русский Правила