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ដោយឈ្មោះរបស់វាជាទូទៅផ្ដើមដោយពាក្យsetឬ Set។
§ តើអ្វីទៅជា 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”;}