មករា
ការប្រើប្រាស់ Inheritance នៅក្នុង C++
♦ រៀបចំលំហាត់ដោយអតីតសិស្ស ឃ្លោក ចំរ៉ាត់ http://training.antkh.com/students/?s=3589 ត្រួតពិនិត្យឡើងវិញដោយ លោក អួន ហ៊ិនស៊ី
សួស្ដីអ្នកទាំងអស់គ្នាប្រាកដជាធ្លាប់បានដឹង ឬក៏ធ្លាប់បានឮហើយអំពីពាក្យថា OOP (Object Oriented Programming) ហើយក្នុងពេលនេះដែរ ថ្នាក់បណ្តុះបណ្តាលកុំព្យូទ័រអាន-ANT សូមលើកយកអត្ថបទមួយមានចំណងជើងថា ការប្រើប្រាស់ Inheritance នៅក្នុង C++ ដើម្បីផ្ដល់ជាជំនួយដល់បងប្អូនដែលចូលចិត្តរៀនពីភាសា Programming ឲ្យបានយល់ដឹងបន្ថែមទៀតដូចខាងក្រោមនេះ ។ សូមមើលឧទាហរណ៍កូដខាងក្រោម៖
រូបទី ១
រូបទី ២
រូបទី ៣
♦ ពន្យល់ពី Inheritance ៖
យើងបានដឹងហើយថា Inheritance គឺមានន័យថាការទទួលមរតក ។ តើការទទួលមរតកក្នុង Programming មានន័យយ៉ាងដូចម្ដេចដែរ? ការទទួលមរកតកនូវក្នុង programming មានន័យថា class មួយដែលយើងហៅថា class កូននោះ (ដូចរូបទី២) គឺមានសិទ្ធអាចទទួលនូវរាល់ member ទាំងអស់នូវក្នុង class មេយកប្រើប្រាស់ដោយការសរសេរកូដដូចទម្រង់ក្នុងរូបទីពីរ ចាប់ពីបន្ទាត់ទី២៤ ដល់បន្ទាត់ទី២៩ ។
♦ ពន្យល់កូដក្នុងរូបទី១ ៖
យើងបានបង្កើត class មួយឈ្មោះថា Shape នៅបន្ទាត់ទី៧
- បន្ទាត់ទី៨ ដល់ទី១០ យើងបានបង្កើតនូវ data member ដែលវាជាប្រភេទ protected ដែលវាមិនអាចទាញយកនូវ member ទៅប្រើនៅក្រៅ class បានឡើយ ប៉ុន្តែយកអាចហៅយកទៅប្រើនៅក្នុង class ណាដែលបាន inherit protected member ចេញពីវា ។
- បន្ទាត់ទី១២ និង១៥ គឺយើងបានបង្កើត method setWidth និង setHeight ជាប្រភេទ non return ដែលmember function ជាប្រភេទ public ។ ហើយក្នុង method នីមួយៗមាន parameter ដូចគ្នាសម្រាប់ផ្ទុកនូវតម្លៃរបស់វា ។
♦ ពន្យល់កូដក្នុងរូបទី២ ៖
- នៅក្នុងបន្ទាត់ទី២៤ យើងបានបង្កើតclassមួយទៀតដែលមានឈ្មោះថា Rectangle ដែលបាន Inherit ដោយ class Shape ដែលអាចឲ្យ access data member ពី class Shape មកប្រើបាន ។
- នៅក្នុងបន្ទាត់ទី២៥ បង្កើត member function ជា public ។
- នៅក្នុងបន្ទាត់ទី២៦ ដល់២៨ យើងបានបង្កើត method ដែលជាប្រភេទ Return ដែលវានឹង Return នូវតម្លៃ (width * height) ដែលយើងបាន access data member របស់វាពី class Shape មកពេលដែល Return តម្លៃ (width * height) នោះតម្លៃនេះវានឹង store ទុកក្នុង method getArea () ជាបណ្ដោះអាសន្ន ។
♦ ពន្យល់កូដរូបទី២ ក្នុង main function ៖
- នៅក្នុង main បន្ទាត់ទី៣៣ យើងបាន declare Rectangle rectangle សម្រាប់ហៅ Object ក្នុង class Rectangle យកមកប្រើក្នុង main ។
- នៅក្នុងបន្ទាត់ទី ៣៤ និង ៣៥ គឺយើងបានហៅ method setWidth និង setHeight ដែលត្រូវបានយើង Inherit ជាមួយ class Rectangle សម្រាប់ផ្ដល់តម្លៃបណ្ដោយនិងកម្ពស់ ដើម្បីឲ្យ method getArea () ដែល return (width * height) ធ្វើការគណនាតម្លៃដែលយើងបានផ្ដល់នៅក្នុង setWidth និង setHeight ។
- នៅក្នុងបន្ទាត់ទី៣៦ ជាកូដសម្រាប់បង្ហាញនៅ Total របស់ width * height ដែលយើងបាន Store ទុកក្នុង method getArea () ដោយសរសេរ rectangle.getArea () នោះបានន័យថា វានឹងបោះតម្លៃសរុបមក rectangle ។
→ រូបទី៣ ជារូបបង្ហាញលទ្ធផលដែល 10 * 5 (height * width) Total area = 50 ៕
♦ វគ្គ C++OOP តម្លៃ ៦៥ដុល្លា http://training.antkh.com/cppoop.aspx
♦ សម្រាប់ព័ត៌មានទំនាក់ទំនងមកយើងខ្ញុំ ៖ https://t.me/anttechnology ឬ https://web.facebook.com/anttrainning
Facebook Page: ANT Technology Training Center ឬ ANT Learner ឬ ANTTrainings
♦ សូមចូលរួមជាសមាជិក ANT Training Group ដើម្បីតាមដានសម្មភាពប្រចាំថ្ងៃជាមួយអាន-ANT
♦ ចុច Like គេហទំព័រ www.antkh.com ដើម្បីទទួលបានអត្ថបទថ្មីៗដែលទាក់ទងនឹងបច្ចេកវិទ្យារៀងរាល់ថ្ងៃ
មតិ និងយោបល់ទៅលើអត្ថបទនេះ (តាម Facebook)
ខាងក្រោមនេះជាយោបល់ផ្សេងៗរបស់អ្នកទស្សនា