Powered by Blogger.

Khmer Good9

Header Ads

Saturday, January 7, 2017

C++ Programming . Question Section.Sort.Class

0 comments
C++ Programming
§  Question Section

A.តើប្រើប្រាស់ Function manipulator សម្រាប់ធ្វើការងារអ្វី?
B.ចូរនិយាយពីរមុខងារបស់អនុគម៍ Manipulator មួយចំនួនដូចជា setw (), Set fill() និង set precision()
Answer
A.    Function manipulator គឺជាអនុគម៍ដែលមានស្រាប់របស់ steam Input /Output ដែលត្រូវបានគេប្រើប្រាស់សម្រាប់ធ្វើការផ្លាស់ប្ដូរលក្ខណះរបស់ steam Input /Output
B.     និយាយពីរមុខងារបស់អនុគម៍ Manipulator ដូចខាងក្រោម
·         Setw() : ប្រើសម្រាប់កំណត់ទទឹង (Field Width) ច្រើនបំផុតនៃអក្សរទិទ្នន័យដែលត្រូវបានបង្ហាញចេញលើ Output Screen
·         Setfill() : ប្រើប្រាស់សម្រាប់កំណត់អក្សរផ្សេងៗយកទៅបំពេញនៅក្នុង Space ទំនេរនៃField Width របស់ទិទ្នន័យដែលត្រូវបានបង្ហាញចេញលើ Output Screen
·         Setpreciton() : គេប្រើប្រាស់សម្រាប់កំណត់ចំនួនខ្ទង់ នៅខាងក្រោយក្បៀសរបស់ចំនួន Floating Point នៅលើ Output Screen
§  តើអ្វីទៅជា OPP ? ចូលពន្យល់ជាលក្ខណះមូដ្ឋានទាំងឡាយដែល OOP មាន?
Answer
+ OOP គឺជាវិធីសាស្រ្ដផ្ដុំទិន្នន័យ (Data) ដែលមានប្រភេទខុសគ្នាជាមួយបណ្ដាយអនុគម៍ (Method) អោយស្ថិតក្នុងក្រុមតែមួយដើម្បីអនុវតន៍នៅលើទិន្នន័យ(Process Data) ទាំងនោះ។
+លក្ខណះមូដ្ឋានទាំងឡាយរបស់ OOP មាន3 គឺ
- Encapsulation: ចាគោលការណ៍នៃការប្រមូលផ្ដុំទិន្នន័យមកដាក់ចូលក្នុង Class ។ វាអាចអោយគេគ្រាប់គ្រងកូដបានយ៉ាងរឹងមាំតាមរយះ Class និង កម្រិត Access នៃ Member របស់ Class (Private, Protected, public)
- Inheritance: ជាគោការណ៍មួយដែលទាក់ទង់និងផ្ដាល់អោយ និង ទទួលយកពី Class មួយនៅ Class មួយទៀត គឺអាចបង្កើតClass ថ្មីមួយដោយផ្អែកលើClass ដែលមានរួចហើយ។
អាចនិយាយថា Class អាចទទួលយក ពីរ Class មួយតៀទបានដោយមិនចាំបាច់សរសេរឡើងវិញនូវអ្វីដែល Based Class មានហើយយើងសរសេរអ្វីដែលជាលក្ខណះ លើសលុបប៉ុណ្ណោះ។
-Polymorphism: គឺជាគោការណ៍មួយដែលទាក់ទង់និងការ Compile និងការ Process នៅពេល Run ដែលមានលក្ខណះ Abs act ដោយសិ្ថតនៅក្រោមឈ្មោះមួយអាចអោយគេប្រើប្រាស់បានច្រើនយ៉ាង។
§  តើClass ជាអ្វី? ចូលពន្យល់ទម្រង់របស់ Class ព្រមទាំងលើក Example មកបញ្ជាក់។
Answer
+ Class ជាពុម្ពគំរូសម្រាប់បង្កើត Objects ដែលក្នុងនោះមាន Data Member និង Function Member ជាច្រើនតាមតែអាចធ្វើទៅបាន ដោយរាល់Data Member និង Function Member ទាំងនេះអាចត្រូវបានកំណត់នៅក្នុងផ្នែកមួយនៃ block keyword ចំនួន3 គឺ Private, Public, Protected
+ពន្យល់ ទម្រង់ទូទៅ របស់់ Class និងលើក Example មកបញ្ជាក់
§  ទម្រង់ទូទៅគឺ      Class NameClass{
Private: data member; function member;
Protected: data member; function member;
Public: data member; function member;
};
Example: គេមានClass មួយឈ្មោះ Student ដែលមាន Data member និង Function member ដូចខាងក្រោម
Class Student {
private : int id ;char Name[25];
public: void Input();void Output();
};
§  តើកម្រិតនៃការ Access របស់ Class មានប៉ុន្មាន? ព្រមទាំងនិយាយពីលក្ខណះនីមួយៗរបស់វាផង។
Answer
Ø  កម្រិតនៃការ Access របស់ Class មាន3 គឺprivate, public, protected
Ø  លក្ខណះនៃការAccess របស់​ Class ទាំង៣ដូចខាងក្រោម
·         Private: រាល់member ដែលសិ្ថតនៅក្នុង block keyword នេះអាច access បាននៅក្នុង class , friend function និងfriend class តែប៉ុណ្ណោះទោះបីជា class មានលក្ខណះInheritance ក៏ដោយ។
·         Protected: : រាល់member ដែលសិ្ថតនៅក្នុង block keyword នេះអាច access បាននៅក្នុង class និង Subclass   តែប៉ុណ្ណោះហើយអាចត្រូវបាន Access ឆ្លង Class បានដរាណា Class នោះមានលក្ខណះInheritance
·         Public:រាល់member ដែលសិ្ថតនៅក្នុង block keyword នេះអាច access បាននៅក្នុង class និងក្រៅ Class ទោះបីជា class នោះមិនមែនលក្ខណះ  Inheritance ក៏ដោយ។
§  ចូលធ្វើការប្រៀបធៀបលក្ខណះ Access ជាprivateនិង public របស់ member នៃ class មួយ។
Answer
ការប្រៀបធៀបលក្ខណះ Access ជាprivateនិង public របស់ member នៃ class មួយ
private
Public
-រាល់ member អាច Access បានតែនៅក្នុងClass តែប៉ុណ្ណោះ
-ទាល់តែFriend Function Friend Class ទើបអាច access រាល់ member ដែលនៅក្នុងblock keyword នេះបាន
-រាល់ member អាច Access បានតែនៅក្នុងClass និងក្រៅ Class
-ទោះបីជាយើងមិនបានប្រើប្រាស់ Friend Function Friend Class ក៏ដោយ រាល់member ក៏អោយយើង access ចូលបានដែរ។

§  តើClass អាចមានប្រភេទ Function Member យ៉ាងច្រើនបំផុតចំនួនប៉ុន្មាន? អ្វីខ្លះ? ហើយប្រភេទ Function member នីំមួយៗមានលក្ខណះប្រើបាស់យ៉ាងដូចម្ដេច?
Answer
 Class អាចមានប្រភេទ Function Member យ៉ាងច្រើនបំផុតចំនួន3 គឺ Manager Function, Access Function និង Implement Function
·         Manager Function:ត្រូវបានគេប្រើប្រាស់សម្រាប់ផ្ដើមដម្លៃ និង លុបតំលៃ Instant Variable របស់ object នៃClass Example : constructor និង Destructor
·          Access Function: ត្រូវបានគេប្រើប្រាស់សម្រាប់ផ្ដាល់ពត៌មាន ស្ដីពីcurrent state របស់object មួយដោយឈ្មោះរបស់វាជាទូទៅផ្ដើមដោយពាក្យget Get
·         Implement Function:ត្រូវបានគេប្រើប្រាស់សម្រាប់អោយប្រួលប្រែទិន្នន័យរបស់objectដោយឈ្មោះរបស់វាជាទូទៅផ្ដើមដោយពាក្យsetSet
§  តើអ្វីទៅជា constructor របស់Class មួយ? មានលក្ខណះអ្វីខ្លះ?ចែកចេញជាប៉ុន្មានប្រភេទ? អ្វីខ្លះ?
Answer
·         constructor របស់Class គឺជាFunction member របស់ class ដ៏ពិសេសមួយដែលអនុវត្តន៍សម្រាប់ផ្ដើមចេញនៅតំលៃដំបូងរបស់ object មួយដោយស្វ័យប្រវត្ដិនៅពេលដែល Object របស់ មួយត្រូវបានបង្កើតឡើង។
Ø  លក្ខណះពិសេស របស់ Constructor មានដូចជា
·         ពុំមែន Return តំលៃទេបើទោះបីជាគ្មានReturn Type ក៏ដោយក៏មិនប្រើKeyword void ដែរ
·         មានឈ្មោះដូចនិងរបស់Class តែម្ដង
·         ជាទូទៅមានលក្ខណះAccess ជា public និង protected
Ø  Constructor របស់ Class ចែកចេញជា៣ប្រភេទអាស្រ័យទៅនិង ចំនួន Parameter និង Parameter គឺ
§  Default Constructor: គឺជាConstructor ដែលគេប្រើក្នុងតារាងផ្ដើមចេញតំលៃរបស់ Object ថ្មីមួយដោយមិនចាំបាច់បញ្ជូនទិន្នន័យពីកន្លែងបង្កើត Object នោះទេ។
§  Constructor with Parameter:  គឺជាConstructor ដែលមានParameter សម្រាប់ assign ឬ បញ្ជូលទិន្នន័យទៅកន្លែងដែលបង្កើត Object
§  Copy Constructor :គឺជាប្រភេទConstructor ដែលគេប្រើប្រាស់សម្រាប់ផ្ដើមចេញតំលៃ របស់ Object ថ្មីមូយបានមកពីObject មានរួចជាស្រេចណាមូយ។
§  តើគេបង្កើត Constructor អោយ Class មួយមានផលប្រយោជន៍អ្វី?តើក្នុងករណីណាខ្លះដែលនាំអោយCopy Constructor ត្រូវបានអនុវតន៍?
Answer
·         គេបង្កើត Constructor អោយ Class មួយមានផលប្រយោជន៍គឺ ដើម្បីអាចផ្ដើមចេញនៅតំលៃដំបូងរបស់ Object មួយដោយស្វ័យប្រវត្ដន៍នៅលើObject របស់ Class មួយត្រូវបានបង្កើតឡើង។
·         ករណីដែកនាំអោយcopy Constructor ត្រូវអនុវត្ដន៍បានលុះត្រាតែ class មួយនោះត្រូវតែមានយ៉ាងហោចណាស់ Constructor មួយផ្សេងទៀត ហើយ Object របស់ Class ត្រូវមានយ៉ាងហោចណាស់២ទើបអាចធ្វើការ Copy បាន។
§  តើ Destructor របស់ Class មួយគឺជាអ្វី?ហើយមានលក្ខណះប្រើប្រាស់យ៉ាងដូចម្ដេច?ប្រើពីរទម្រង់ទូទៅរបស់វា និង លើកExample មកបញ្ជាក់។
Answer
v  Destructor របស់ Class មួយគឺជា Function member ដ៏ពិសេសមួយតៀតរបស់ Class ដែលត្រូវបានអនុវត្ដន៍ដោយស្វ័យប្រវត្ដន៍សម្រាប់លុបបំបាត់ចោលនូវ Object ទាំងឡាយរបស់ Class ក្រោយពេលដល់ទីបញ្ចប់នៃ Function ។វាត្រូវប្រើ release space memory ដេលបង្កើតដោយរបស់ Constructor 
Ø  លក្ខណះសំខាន់របស់ Destructor មានដូចជា
v  មានឈ្មោះដូចនិងឈ្មោះរបស់Class ហើយនាំមុខដោយសញ្ញា tilde (~)
v  ពុំមែនប្រភេទReturn Type ណាមួយឡើយសូម្បីតែ void
v  អាចមានតែមួយគត់ សម្រាប់ Class មួយ
v  ពុំត្រូវការ Parameter Is
v  អាច Execute ដោយមិនចាំបាច់ call ទេ
§  Example:
§  ទម្រង់ទូទៅ: ClassName(){…}
§  Example : Student (){cout<<This object of Class Student has been released”;}

No comments:

Post a Comment