20. Өөр нэг классын жишээ
• Цагтай ажиллах класс.
class Time
{
private:
int *hour,*minute,*second;
public:
Time();
Time(int h,int m,int s);
void printTime();
void setTime(int h,int m,int s);
int getHour(){return *hour;}
int getMinute(){return *minute;}
Устгагч int getSecond(){return *second;}
void setHour(int h){*hour = h;}
void setMinute(int m){*minute = m;}
void setSecond(int s){*second = s;}
~Time();
};
21. Time::Time()
{
hour = new int;
minute = new int;
second = new int;
*hour = *minute = *second = 0;
}
Эхлээд заагчийг Time::Time(int h,int m,int s)
динамикаар {
хуваарилах
hour = new int;
хэрэгтэй
minute = new int;
second = new int;
*hour = h;
*minute = m;
*second = s;
}
void Time::setTime(int h,int m,int s)
{
*hour = h;
*minute = m;
*second = s;
}
22. void Time::printTime()
{
cout<<"The time is : ("<<*hour<<":"<<*minute<<":"<<*second<<")"
<<endl;
}
Устгагч: санах ойг чөлөөлөх
Time::~Time(){
delete hour; delete minute; delete second;
}
int main()
{
Output:
Time *t;
t= new Time(3,55,54); The time is : (3:55:54)
t->printTime(); The time is : (7:17:43)
Press any key to continue
t->setHour(7);
t->setMinute(17);
t->setSecond(43);
t->printTime();
Энэ биелэхэд байгуулагч
delete t; дуудагдана
cin.get();
}
23. OOP ашиглах шаардлага
1. Программыг хялбарчлах
2. Программын харагдах байдал
• Мэдээлэл нуугдмал:
– Класс л мэдээллийг өөрөө боловсруулах
1. Программ хангамжийн дахин ашиглагдах
байдал
• Классын объект бусад классын гишүүн байж болно
24. OOP
Объектуудын хоорондын харилцааг ашиглан
программ бичих программчлалын хандлага
(парадигм)-ыг ОХП гэдэг. Өгөгдөл, арга (methods
буюу функц)-аас бүрдэх хэрэглэгчийн
тодорхойлсон төрлийг класс гэнэ. Объект нь
класс (анги)-н элемент юм. Программчлах
технологи нь ө гө гдлийн хийсвэрлэл, капсулдах
буюу багцлах (encapsulation), мэдээ дамжуулах,
модульчлах, полиморфизм, удамшил зэргээс
бүрдэнэ.
Объект нь мэдээлэл хүлээн авна, өгөгдлийг
боловсруулна, бусад объектэд мэдээ дамжуулна.
(Бие даасан машин гэж үзэхээр)
25. C хэл дээр нэмэгдсэн C++ ойлголт
–// мөр дуустал тайлбар
–Заалт хувьсагч
int ix; // ix нь “жинхэнэ" хувьсагч
int &rx = ix; // rx нь ix-ийн "alias”
ix = 1; // rx == 1 үнэн
rx = 2; // ix == 2 үнэн
26. C хэл дээр нэмэгдсэн C++ ойлголт
#include <stdio.h> // #include <iostream.h>
int max(int a, int b)
{ if (a > b) return a;
return b; }
char *max(char *a, char * b)
{ if (strcmp(a, b) > 0) return a;
return b; }
int main() {
printf("max(19, 69) = %dn", max(19, 69));
printf("max(abc, def) = %sn", max("abc", "def"));
return 0; // cout; cin;
27. C хэл дээр нэмэгдсэн C++ ойлголт
–Анхны утга онооход илэрхийлэл бичиж
болно.
double a = 12 * 3.25;
double b = a + 1.112;
a = a * 2 + b;
double c = a + b * a;
–Локал хувьсагч зарлах
for (int i = 0; i < 4; i++) // i –г локалаар зарлав
28. C хэл дээр нэмэгдсэн C++ ойлголт
–Глобал, локал хувьсагч ижил нэртэй байж
болно.
#include <iostream.h>
double a = 128;
int main ()
{
double a = 256;
cout << "Local a: " << a << endl;
cout << "Global a: " << ::a << endl;
return 0;
}
29. C хэл дээр нэмэгдсэн C++ ойлголт
–New, delete
–width() ба setw() // iomanip.h
–Функц, оператор дахин тодорхойлох
гэх, мэт
Дараах эх сурвалжаас дэлгэрүүлж үзнэ үү.
1.http://www.4p8.com/eric.brasseur/cppcen.html#l3
2.Эсвэл google ээр “from c to c++” хайлтын үр
дүн