Similar presentations:
Программирование на С++ в среде 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