សីហា
មេរៀនទី ១២៖ Classes and Objects
→ ប្អូនៗជានិស្សិត IT គួរតែស្វែងយល់ពីបច្ចេកវិទ្យាបន្ថែម មិនគួររៀនតែតាមមុខវិជ្ផានៅសាលាតែប៉ុណ្ណោះទេ
មេរៀនទី១២នេះនឹងនាំឲ្យអ្នកដឹងនូវចំណុចដូចខាងក្រោម៖
- អ្វីទៅជា procedural programming?
- ហេតុផលតម្រូវការចាំបាច់ប្រើប្រាស់ classes និង objects
- អ្វីទៅជា classes? អ្វីទៅជា objects?
- អ្វីទៅជា constructors និងតួនាទីរបស់វា? ព្រមទាំងប្រភេទ constructors ផ្សេងៗ
- អ្វីទៅជា destructors និងតួនាទីរបស់វា?
- តើ this Pointer មានមុខងារអ្វី?
- ការប្រើប្រាស់ sizeof () ជាមួយ class និងការបញ្ជៀស object ចេញពី statck
- របៀបធ្វើឲ class ការពារភាពស្ទួន object របស់វា និងការប្រើប្រាស់ singleton class
- អ្វីទៅជា aggregate class? អ្វីទៅជា aggregation object?
♦ អ្វីទៅជា Procedural Programming ?
ជាង១០មេរៀនកន្លងទៅ គ្រប់ programs ទាំងឡាយដែលអ្នកបានបង្កើត និងសិក្សា គឺសុទ្ធតែជា programs ដែលកើតឡើងដោយប្រើទម្រង់ procedural programming ។ បើដូច្នេះតើពិនិត្យដូចម្ដេចទើបដឹងថា programs របស់អ្នកកំពុងប្រើទម្រង់ procedural programming?
Procedural programming គឺជាទម្រង់ដែលរាល់ការដោះស្រាយបញ្ហា ជាពិសេសគឺលំហូរនៃទិន្នន័យ គឺស្ថិតនៅក្រោមការគ្រប់គ្រងរបស់ function ដ៏សំខាន់តែមួយរបស់ program, ក្នុងភាសា C++ ត្រូវបានដឹងថាគឺជា main () ហើយពឹងផ្អែកលើការអនុវត្តកូដពីលើចុះក្រោម ថ្វីត្បិតតែទម្រង់នេះអាចផ្ដល់នូវលទ្ធភាពឲអ្នក programmers អាចពុះច្រៀកបញ្ហាធំឲ្យទៅជាកង់ៗដែលហៅថាការបង្កើត functions ក៏ដោយចុះ ក៏ functions ទាំងនោះនៅតែស្ថិតក្នុងចង្កោមនៃ program តែមួយដដែល ។ រាល់ការបង្កើត variables និង constants ទោះបីវាជា global ឬ local ក៏ដោយ គឺវាបង្កើតឡើងសម្រាប់បម្រើឲតែ program នោះតែប៉ុណ្ណោះ ។ ជាការពិតណាស់ទម្រង់ procedure programming គឺត្រូវបានប្រើជាយូរយារក្នុងការបង្កើតកម្មវិធីជាច្រើនដោយអ្នក programmers ផ្សេងៗ ។ ក៏ ប៉ុន្តែនៅពេលដែល programs កាន់តែធំ និងមានបញ្ហាកាន់តែស្មុកស្មាញ ការប្រើប្រាស់ទម្រង់ procedure programming គឺនឹងនាំមកនូវបញ្ហាពិបាកៗដែលត្រូវរកវិធីដោះស្រាយដោយប្រយ័ត្នប្រយែងបំផុត ។ ឧទារហណ៍អ្នកក៏បានឃើញ programs កន្លងមកនៅក្នុងសៀវភៅនេះដែលប្រើប្រាស់ procedure programming រាល់ data គឺត្រូវបានតំណាងដោយ variables ដូច្នេះរាល់ការងារ រួមទាំង functions ទាំងឡាយនៅក្នុង programs ទាំងនោះគឺត្រូវរៀបចំឡើង យ៉ាងប្រទាក់ក្រឡា ដើម្បីអាចទាញទិន្នន័យចេញពី variables ទាំងនោះចេញពី main () function ។ ដូច្នេះតើនឹងមានអ្វីកើតឡើង បើសិនជា programs តម្រូវឲមានការផ្លាស់ប្តូរទម្រង់ variables មួយចំនួន? ចម្លើយគឺថា នឹងធ្វើឲរចនាសម្ព័ន្ធទិន្នន័យរបស់ program នឹងមានការប្រែប្រួល ជាហេតុធ្វើឲអ្នក programmers ត្រូវតែធ្វើការ design functions ឡើងវិញ យ៉ាងនេះហើយទើបធ្វើឲអ្នក programmers ទាំងនោះត្រូវចំណាយពេលច្រើនសម្រាប់ដោះស្រាយបញ្ហា និងការសរសេរកូដឡើងវិញ ។
ដោយសារការប្រើប្រាស់ទម្រង់ procedure programming មាននូវផលវិបាកបែបនេះហើយទើបធ្វើឲអ្នក programmers ជាច្រើនបានផ្លាស់ប្ដួរទម្លាប់របស់ខ្លួនពីការប្រើប្រាស់ procedure programming ទៅជាទម្រង់ Object-Oriented Programming (OOP) ជាជំនួសវិញ ហើយនេះក៏ជាមូលហេតុដែលលោក Bjarne Stroustrup បានធ្វើការបន្ថែមនូវសមត្ថភាព OOP នេះទៅកាន់ភាសា C ដែលបានបង្កើតឡើងដោយលោក Dennis Ritchie ទៅជាភាសាថ្មីមួយទៀតគឺ C++ ។
♦ អ្វីទៅជា Class ?
Class គឺជាថ្នាក់រៀនមែនទេ? មិនមែន! ប៉ុន្តែវាអាចជាប្រភេទ ឬគំរូនៃទិន្នន័យអ្វីមួយទៅវិញទេ ។ ឥឡូវនេះខ្ញុំនិយាយសំដៅលើពាក្យមួយគឺ “មនុស្ស” តើអ្នកគិតថាពាក្យ “មនុស្ស” ដែលខ្ញុំបាននិយាយនេះសំដៅទៅលើអ្នកណាមួយដែរ ឬទេ? ប្រាកដណាស់ខ្ញុំមិនបានសំដៅទៅលើអ្នកណាឡើយ ក៏ ប៉ុន្តែខ្ញុំកំពុងនិយាយសំដៅទៅលើប្រភេទមួយដែលមានជីវិតរស់នៅលើផែនដីគឺ “មនុស្ស” ថ្វីត្បិតតែខ្ញុំមិនបាននិយាយសំដៅទៅលើអ្នកណាម្នាក់នៃមនុស្សក៏ពិតមែន ក៏ ប៉ុន្តែអ្នកអាចនឹងដឹងថាមនុស្សគឺខុសពីសត្វមានជិវិតផ្សេងទៀតដែលរស់នៅលើផែនដីនេះ គឺមនុស្សម្នាក់ៗ មានឈ្មោះ ថ្ងៃខែឆ្នាំកំណើត ទីកន្លែងកំណើត ភេទ សញ្ជាតិ សម្បុរ ។ ល ។ ដែលជាអត្តសញ្ញាណសម្រាប់សម្គាល់មនុស្សម្នាក់ៗ ជាពិសេស មនុស្សម្នាក់ៗអាចសម្តែងនូវអំពើអ្វីមួយឲគេបានដឹង ចេះនិយាយ យំ ស្រែក សើច គិត ។ ដូច្នេះអ្វីដែលខ្ញុំបានរៀបរាប់អំពីអ្វីដែលមនុស្សម្នាក់ៗមាន គឺទាំងអស់នោះជា ធាតុផ្សំ (members) ដែលបង្ហាញពីអត្តសញ្ញាណរបស់មនុស្ស ជាសរុបពាក្យថា “មនុស្ស” អាចហៅថា data type ឬហៅថា user-defined typesសម្រាប់សម្គាល់មនុស្សម្នាក់ៗ ។
ពិសេសយើងជាអ្នក programmers នីមួយៗអាចបង្កើតឡើងតម្រូវនៅក្នុងការសរសេរកូដសម្រាប់ programs ដែលគ្រប់គ្រងអ្វីមួយទាក់ទងនឹងមនុស្ស ឧទាហរណ៍ដូចជា program គ្រប់គ្រងស្ថិតិ និងអត្តសញ្ញាណប័ណ្ណ គ្រប់គ្រងព័ត៌មានបោះឆ្នោត គ្រប់គ្រង់បុគ្គលិក ។ ល ។ ដូច្នេះពាក្យ “មនុស្ស” អាចនិយាយបានថាគឺជា class រីឯ ឈ្មោះ ថ្ងៃខែឆ្នាំកំណើត ទីកន្លែងកំណើត ភេទ សញ្ជាតិ សម្បុរ ចេះនិយាយ យំ ស្រែក សើច គិត ។ ល ។ ដែលជាធាតុផ្សំដែលមាននៅក្នុងមនុស្សម្នាក់ៗ ត្រូវបានហៅថា members របស់ class ។
ជាការសន្និដ្ឋានចុងក្រោយ class គឺជាគំរូនៃទិន្នន័យអ្វីមួយ ដែលអាចហៅថាជា data type ឬ user-defined types ដ៏ពិសេសមួយ ដែលត្រូវបានអ្នក programmers បង្កើតឡើងផ្សេងៗគ្នាសម្រាប់ការងារតំណាងទិន្នន័យអ្វីមួយនៅក្នុង programs របស់ពួកគេ ។
♦ ការបង្កើត Class
នៅក្នុងភាសា C++ អ្នកអាចបង្កើត (definition) class មួយ ឬច្រើន តាមតម្រូវការជាក់ស្ដែងនៅក្នុង programs របស់អ្នកដោយមិនកំណត់ចំនួនឡើយ ។ ការបង្កើត class ត្រូវអនុលោមតាមទម្រង់ដូចខាងក្រោម៖
class ClassName
{
members
} ;
members មានចំនួនពីរប្រភេទ គឺ data members ឬហៅថា member attributes ឬក៏ជា member variables និង methods ឬហៅថា member functions ។
- data members គឺសំដៅលើ variables ដែលបង្កើតនៅក្នុង block របស់ class
- methods គឺសំដៅលើ functions ដែលបង្កើតនៅក្នុង block របស់ class data ឬ methods ទាំងពីរប្រភេទនេះមិនដាច់ខាតត្រូវតែមានទាំងពីរនោះទេ គឺអាស្រ័យតាមតម្រូវការនៃ class ដែលត្រូវបង្កើត ។
→ សម្រាប់អត្តបទទាំងស្រុងនៃមេរៀនទី ១២ មានចំនួន ១១៦ទំព័រ នេះសូមអ្នកទាំងអស់គ្នាចូលទៅ Download កម្មវិធី ANTLearner សម្រាប់ Android & Windows តាម Link ខាងក្រោម ៖ http://www.antclasses.com/help/page/download.html
→ សម្រាប់មេរៀន C++ ក្នុងកម្មវិធី ANTLearner សរុបមានចំនួន ១២មេរៀន គិតត្រឹមខែឩសភា ឆ្នាំ ២០២០ នឹងមានចំនួន ៥៤៥ទំព័រ Link Download សម្រាប់ Android https://play.google.com/store/apps/details?id=com.antkh.antlearning
ក្នុងនោះផងដែរកម្មវិធី ANTLearner និងចូលរួមចំណែកយ៉ាងសកម្ម ក្នុងការបង្រៀនវគ្គ online learning នៅអាន -ANT ដោយសិស្ស គ្រាន់តែប្រើប្រាស់ ID ដែលប្អូនៗបានចុះឈ្មោះរៀននៅអាន -ANT ដើម្បីទាញយកវីឌីអូ ឬឯកសាផ្សេងៗដែលគ្រូ ឬសាលាបានផ្ដល់ឲ្យបំពេញ បន្ថែមនូវការង្រៀនតាមរយៈonline របស់យើងខ្ញុំ ។
→ ទាញយកកម្មវិធី ANTLearner http://www.antclasses.com/help/page/download.html
១. សម្រាប់លោកអ្នកដែលចង់បានអត្ថបទ ចំណេះដឹង ឬវគ្គសិក្សាបើកថ្មីៗនៅអាន-ANT សូមចុច Like លើ Page
https://www.facebook.com/ant.com.kh & https://www.facebook.com/anttrainning
២. ប្រសិនបើលោកអ្នកចង់តាមដាន ឬមានចម្ងល់ទាក់ទងនឹងកម្មវិធី ANTLearner ឬកម្មវិធីជាច្រើនទៀតបង្កើតដោយអាន-ANT សូមចុច Like https://www.facebook.com/ANTTechnologyTrainingCenter
៣. ប្រសិនបើលោកអ្នកមានបំណងចែករំលែងចំណេះដឹង IT ដល់សមាជិកដទៃសូមចូលទៅកាន់ Group https://www.facebook.com/groups/ANTTrGroup/
៤. ប្រសិនបើមានចង្ងល់ ឬមានសំណួរផ្សេងៗសូមផ្ញើសារចូល Facebook : https://www.facebook.com/anttrainning
→ លេខទូរសព្ទទំនាក់ទំនង ០១០/០១៦ ៦៦៦ ៦៥៣
💒ទីតាំង #86B ផ្លូវ 313 កែង 606 សង្កាត់បឹងកក់២ ទួលគោក
មតិ និងយោបល់ទៅលើអត្ថបទនេះ (តាម Facebook)
ខាងក្រោមនេះជាយោបល់ផ្សេងៗរបស់អ្នកទស្សនា