Sunday, November 8, 2015

8.10 лекц

Лекц – 8 Байгуулагч функц
Анхдагч болон параметртэй байгуулагч функцууд:
         Байгуулагч функц нь классын private өгөгдөлд обьектын дамжуулсан утгыг өгөх үүрэгтэй. Байгуулагч функцийг constructor функц гэдэг. Энэхүү функц нь классын нэртэй ижил нэртэй байдаг ба хэзээ ч илэрхий дуудагддаггүй. Классын обьект үүсэх үед байгуулагч функц автоматаар дуудагдана.
Мөн класст нэгээс олон байгуулагч функц тодорхойлж өгч болно. Энэ нь дахин тодорхойлогдож байна гэсэн үгболно.
         Байгуулагч функцийн буцаах утга нь обьект байна. Иймээс буцаах утгын төрлийг тодорхойлж өгдөггүй. Хэд хэдэн байгуулагч функцтай класс зарлах үед тэдгээр байгуулагч функцууд нь хоорондоо параметрийнхээ төрлөөр ялгагдаж байх ёстой. Ингээгүй тохиолдолд компилятор байгуулагч функцуудын алийг нь дуудахаа тодорхойлж чадахгүй байдалд хүрнэ. Энэ үед "Ambiguity between constructor1 gnd constructor2 " гэсэн алдааг бидэнд өгдөг. Класс дахин тодорхойлогдсон байгуулагч функцтай бол түүний обьектыг зарлах үед параметрийнхээ төрлөөрөө аль тохирох тодорхойлогдсон байгуулагч функц нь дуудагддаг.

Устгагч функц
         Устгагч функц нь обьектын динамик өгөгдлийн санах ойг чөлөөлөхөд хэрэглэгдэнэ. Устгагч функцийг destructor гэнэ. Класс ганц устгагч функцтэй эсвэл устгагч функц байхгүй байдаг. Хэрэв класст устгагч функц байхгүй бол компилятор обьектийн өгөгдлийн нөөцөлсөн санах ойг автоматаар чөлөөлнө. Энэ үед класс динамик гишүүн өгөгдөлтэй бол түүнийг санах ойгоос бүрэн чөлөөлж чаддаггүй. Иймээс динамик гишүүн өгөгдөлтэй класс заавал устгагч функц хэрэглэх ёстой. Устгагч функц 3 шаардлага хангасан байх ёстой.
1. Устгагч функц нь классын нэртэй ижил нэртэй байх ба урдаа ~ тэмдэгтэй
2. Устгагч функц утга буцаахгүй
3. Устгагч функц параметргүй
         Устгаг ч функц хэзээ ч илэрхий дуудагдахгүй, зөвхөн тухайн обьектийн мужаас гарах үед компилятор устгагч функцийг автоматаар дууддаг. Жишээ нь:
1: class Person{
2: private:
3: char * name;
4: int age;
5: public:
6: Person(char * a, int b=19)
7: {
8. name=new char [strlen(a)+1];
9: strcpy(name, a);
10: age=b;
11: cout<<"Ok";
12: }
13: ~Person(){cout<<"Destructor called"; delete [] name; }
14: };











Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../ О.Мөнхбаяр/
ОБЬЕКТ ХАНДАЛТАД ПРОГРАМЧЛАЛ
Лекц – 10 Дахин тодорхойлох функц
   Дүрэм ба анги, дахин тодорхойлогдсон дүрэм, үүсгэгч дүрмийн дахин тодорхойлох объектийг параметрт хэрэглэх, ангийн staticөгөгдөл, унар болон бинар оператор тодорхойлох
С++ -ийн С-ээс ялгагдах нэг онцлог нь хэд хэдэн ижил нэртэй функц  байхыг зөвшөөрдөг. Ижил нэрээр дахин тодорхойлогдсон  функцуудыг хэт ачаалалтай функц гэж нэрэлдэг. С++ дахин тодорхойлогдсон функц бүрийг аргументын жагсаалтаараа ялгаатай байхыг шаарддаг. Дахин тодорхойлогдсон  оператор гэдэг энгийн операторын обьектын илэрхийлэлд  ашиглахаар  тодорхойлогдсоныг хэлнэ. Жишээ нь  архиметкийн +,- үйлдлийг обьектын илэрхийлэлд зориулан тодорхойлох боломж  C++ -т байдаг. (+)  оператор 2 обьектийн хооронд хийгдэнэ. Үүнийг бинар оператор гэнэ. Мөн (-) тэмдэг нь сөрөг тоог илэрхийлхэд хэрэглэдэг. Иймд хасах тэмдэг зарим үед унар , зарим үед бинар үйлдэл болдог. Дахин тодорхойлогдсон оператор нь ердийн найз функц байдлаар эсвэл классын гишүүн байдлаар тодорхойлогддог. Дахин тодорхойлогдсон  гишүүн функц - Классын гишүүн функцүүд  анхны утгатай тодорхойлогдож болохоос гадна дахин тодорхойлогдсон байж болно. Дахин тодорхойлогдсон гишүүн функцууд нь ижил нэртэй байх боловч буцаах утгын   төрөл болон  параметрийн тоо эсвэл төрлүүдээрээ ялгаатай байх ёстой.
Үүсгэгч функцийг дахин тодорхойлох - Классын обьект үүсэх үед байгуулагч функц  автоматаар дуудагдна. Мөн класст нэгээс олон байгуулагч функц тодорхойлж  өгч болно. Энэ нь нэг класс тухайн классын обьектууд хоорондоо ялгаатай байж болохтой холбоотай бөгөөд нөгөө талаас байгуулагч функц нь гишүүн функц учраас дахин тодорхойлогдож байгаа хэрэг юм. Хэд хэдэн байгуулагч функцтэй класс зарлах үед тэдгээр хоорондоо праметрийнхээ төрлөөр ялгагдаж байх ёстой. Обьектийг параметрт хэрэглэх - Функцийг параметрт классын обьект, заалт обьект, обектийн заагчийг хэрэглэж болно. Жишээ нь:
            Void objfunction 1 (PrWord p)
                        {p.display();}
objFunction ()  функц нь обьект параметртэй тодорхойлогдсон байна. Энэ функцийг дуудахдаа функцийн параметрт классын обьектийг өгч дуудна. Тухайлбал :
Prword q;
            Objfunction 1 (q);
Ангийн статик өгөгдөл - Классын обьектуудын хувьд цор ганц хувь үүсдэг классын гишүүнийг классын статик гишүүн гэдэг. Статик гишүүн нь статик гишүүүн  өгөгдөл,статик гишүүн функц гэсэн 2 хэлбэртэй байна. Статик гишүүн  функц глобал үйлдэл гүйцэтгэх эсвэл классын бүх глобал өгөгдөлд ипициализаци хийхэд хэрэглэдэг. Өөрөөр хэлбэл классын статик гишүүн функц нь  классын бусад статик биш гишүүдэд хандаж чадахгүй зөвхөн уг классын бусад  статик гишүүн өгөгдөл болон гишүүн функцэд л хандаж  чаддаг. Харин классын бусад гишүүн функцууд классын статик гишүүдэд хандаж чадна. Статик гишүүн өгөгдөл нь private, protected, public байж болно. Статик гишүүн өгөгдлийг дараах байдлаар зарлан ипициализаци хийнэ.
            char  Tanyclass :: c=’q’;



2 comments:

  1. Я Абрам Александр, бизнесмен, который смог возродить свой умирающий лесозаготовительный бизнес с помощью отправленного Богом кредитора, известного как Бенджамин Ли, Кредитный Консультант. Проживаю в Екатеринбурге Екатеринбург. Вы пытаетесь начать бизнес, погасить свой долг, расширить свой существующий, нуждаетесь в деньгах для покупки расходных материалов. Если у вас возникли проблемы с попыткой получить хорошую кредитную линию, я хочу, чтобы вы знали, что мистер Бенджамин проведет вас до конца. Это правильное место для вас, чтобы решить все ваши финансовые проблемы, потому что я живое свидетельство, и я не могу просто оставить это при себе, когда другие ищут способ быть финансово поднятым .. Я хочу, чтобы вы все связались с этим Богом, посланным кредитором используя детали, как указано в других, чтобы принять участие в этой прекрасной возможности Электронная почта: lfdsloans@outlook.com Или WhatsApp / Text + 1-989-394-3740.

    ReplyDelete
  2. Blackjack Review | The Best Bet for the Casino Guru
    Blackjack is a 토큰 룰렛 gambling game 쪽박 걸 that is based on skill and luck. The game is played on 승인전화없는 꽁머니 사이트 a computer or phone with a computer or a keyboard. The 먹튀 검증 업체 순위 game has 포커 게임 다운

    ReplyDelete