Advanced-Cpp/C2/Function-Overloading-And-Overriding/Malayalam

From Script | Spoken-Tutorial
Revision as of 12:50, 28 April 2015 by Devisenan (Talk | contribs)

Jump to: navigation, search
Time Narration
00:01 function Overloading and Overriding in C++. എന്ന സ്പോകെൻ ട്യൂട്ടോറിയലിലേക്ക് സ്വാഗതം.
00:09 ഈ ട്യൂട്ടോറിയലിൽ നമ്മൾ പഠിക്കുന്നത്.
00:11 ഫങ്ഷൻ ഓവര്‍ലോഡിംഗ്.
00:12 ഫങ്ഷൻ ഒവർറൈഡിംഗ്.
00:14 ഒരു ഉദാഹരണത്തിൻറെ സഹായത്തോടെ നമുക്ക് ഇത് പഠിക്കാം.
00:18 ഈ ടൂട്ടോറിയൽ റെക്കോഡ് ചെയ്യാൻ, ഞാൻ ഉപയോഗിക്കുന്നത്.
00:21 ഉബുണ്ടു OS version 11.10
00:26 g++ കമ്പൈലർ  version 4.6.1
00:30 function overloading.നെ കുറിച്ച് നമ്മുക്ക് ആദ്യം നോക്കാം.
00:34 ഒരേ പേരില്‍ രണ്ടോ അതില്‍ കൂടുതലോ ഫങ്ങ്ഷന്‍സ് ഉപയോഗിക്കുന്നതിനെ function Overloading എന്ന് പറയുന്നു.
00:41 ആര്‍ഗുമെന്‍സിന്‍റെ നമ്പറും ആര്‍ഗുമെന്‍സിന്‍റെ data-type ഉം വ്യത്യസ്ഥമായിരിക്കും
00:47 ഒരു function വിള്ളിക്കുമ്പോള്‍ ആര്‍ഗുമെന്‍സിന്‍റെ എണ്ണം അനുസരിച്ചാണ് ഏത് function തിരഞ്ഞെടുക്കണം എന്ന് തീരുമാനിക്കുന്നത്‌.
00:53 ഒരു ഉദാഹരണം നോക്കാം.
00:56 എഡിറ്ററിൽ ഞാൻ മുൻപുതന്നെ എഴുതി വച്ചിട്ടുള കോഡ് ആണ് നമ്മൾ ഇപ്പോൾ കാണുന്നതു .
00:59 addition ഓപ്പറേഷന്‍ ചെയ്യാനുള്ള പ്രോഗ്രാമാണിത്‌.
01:03 നമ്മുടെ ഫയലിൻറെ പേര് overload.cpp എന്നാണ്‌.
01:08 ഞാൻ കോഡ് വിശദീകരിക്കാം.
01:10 iostream എന്നത് ഒരു ഹെഡർ ഫയൽ ആണ്.
01:13 ഇവിടെ നാം STD namespace ഉപയോഗിക്കുന്നു.
01:17 നമ്മുക്ക് ഇവിടെ integer ആയി ഡിക്ലയര്‍ ചെയ്ത add ഫങ്ഷനുണ്ട്.
01:21 ഇതില്‍ നമ്മള്‍ മൂന്ന് ആര്‍ഗുമെന്‍റ്സ് കൊടുക്കുന്നു.
01:24 Int a, int b, int c.
01:28 ശേഷം നമ്മള്‍ addition ചെയുന്നു , വാല്യൂ return ചെയ്യുന്നു.
01:33 ഇവിടെ നമ്മള്‍ add. ഫങ്ഗ്ഷന്‍ ഓവര്‍ലോഡ് ചെയ്യുകയാണ്.
01:36 ഇത് float. ആയി ഡിക്ലയര്‍ ചെയ്തിരിക്കുന്നു.
01:38 നമ്മള്‍ രണ്ട് ആര്‍ഗുമെന്‍റ്സ് float d ,float e കൊടുത്തിരിക്കുന്നു.
01:44 ഇനി നമ്മള്‍ രണ്ട് നമ്പര്‍‌ ഉപയോഗിച്ച് addition ഓപ്പറേഷന്‍ ചെയ്യുന്നു.
01:48 ഇത് നമ്മുടെ മെയിൻ ഫംഗ്ഷൻ ആണ്.
01:50 main function ല്‍ വിവിധ ആര്‍ഗുമെന്‍റ്സ് ഉപയോഗിച്ച് add ഫങ്ഗ്ഷന്‍ ഡിക്ലയര്‍ ചെയ്യുന്നു.
01:56 variables ഡിക്ലയര്‍ ചെയ്യുന്നു.
01:58 ഇവിടെ നമ്മള്‍ ഇന്‍റ്റിജര്‍ വാല്യൂസ് യൂസറില്‍ നിന്ന് സ്വീകരിക്കുന്നു.
02:03 ശേഷം മൂന്ന് ആര്‍ഗുമെന്‍റ്സ് ഉപയോഗിച്ച് add ഫങ്ഗ്ഷന്‍ വിളിക്കുന്നു.
02:07 sum എന്ന വാരിയബിളില്‍ റിസള്‍ട്ട്‌ സൂക്ഷിക്കുന്നു.
02:09 ഇവിടെ ആ റിസള്‍ട്ട്‌ പ്രിന്‍റ് ചെയ്യുന്നു.
02:12 ഇവിടെ യൂസറില്‍ നിന്നും floating point numbers സ്വീകരിക്കുന്നു.
02:17 പിന്നീട് രണ്ട് ആര്‍ഗുമെന്‍റ്സുള്ള add ഫങ്ഗ്ഷന്‍ വിളിക്കുന്നു.
02:21 ഇവിടെ sum പ്രിന്‍റ് ചെയ്യുന്നു.
02:23 ഇത് ഒരു return സ്റ്റേറ്റ്മെന്‍റൊണ്.
02:26 ഇനി നമ്മുക്ക് പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യാം.
02:29 നിങ്ങളുടെ കീബോർഡ് ഒരേസമയത്ത് Ctrl + Alt + T എന്നീ കീകൾ അമർത്തി ടെർമിനൽ വിൻഡോ തുറക്കുക.
02:38 കമ്പൈൽ ചെയ്യാൻ g++ സ്പേസ് overload ഡോട്ട് cpp സ്പേസ് ഹൈഫൻ o സ്പേസ് over എന്ന് എഴുതുക.
02:49 എൻറ്റർ അമർത്തുക.
02:51  ./over(ഡോട്ട് സ്ലാഷ് over) എന്ന് ടൈപ്പ് ചെയ്യുക.
02:53 എൻറ്റർ അമർത്തുക.
02:55 നമ്മള്‍ കാണുനത് : Enter three integers
02:58 ഞാന്‍ 10, 25 , 48 എന്ന് കൊടുക്കുന്നു
03:04 നമ്മുക്ക് കിട്ടുന്ന ഔട്ട്പുട്ട് : Sum of integers is 83
03:09 ഇപ്പോള്‍ നമ്മുക്ക് കാണാം: Enter two floating point numbers
03:13 ഞാന്‍ കൊടുക്കുന്നത്: 4.5 , 8.9
03:17 എൻറ്റർ അമർത്തുക.
03:19 നമ്മുക്ക് കിട്ടുന്ന ഔട്ട്പുട്ട് : Sum of floating point numbers is 13.4
03:25 ഇനി നമ്മുക്ക് function overriding എങ്ങനെയെന്ന് നോക്കാം.
03:29 നമ്മുക്ക് സ്ലൈഡിലേക്ക് തിരിച്ചുപോകാം.
03:31 derived ക്ലാസ്സില്‍ ഒരു base class function വേണ്ടും ഡിഫൈന്‍ ചെയ്യുന്നു.
03:36 derived class ലെ ഫങ്ഗ്ഷന്‍ base class ലെ ഫങ്ഷനെ ഓവര്‍െെറഡ് ചെയ്യുന്നു.
03:40 നമ്മള്‍ കൊടുക്കുന്ന arguments ഒരുപോലെ ആയിരിക്കും.
03:44 return-type ഉം ഒരുപോലെ ആയിരിക്കും.
03:47 ഒരു ഉദാഹരണം നോക്കാം.
03:49 ഇതാണ് function Overridingന്‍റെ ഉദാഹരണം.
03:53 നമ്മുടെ ഫയലിൻറെ പേര് override.cpp ആണ്
03:57 ഞാൻ കോഡ് വിശദീകരിക്കാം.
04:00 iostream എന്നത് ഒരു ഹെഡർ ഫയൽ ആണ്.
04:03 ഇവിടെ നാം STD namespace ഉപയോഗിക്കുന്നു.
04:06 നമ്മുക്ക് arithmetic എന്ന ഒരു class ഉണ്ട്.
04:09 ഇതില്‍ നമ്മള്‍ വാരിയബിള്‍സ്നെ protected. ആയി ഡിക്ലയര്‍ ചെയ്തിരിക്കുന്നു.
04:14 values എന്ന ഫങ്ഗ്ഷന്‍ പബ്ലിക്‌ ആയി ഡിക്ലയര്‍ ചെയ്തിരിക്കുന്നു.
04:18 ഇവിടെ നമ്മള്‍ രണ്ട് ആര്‍ഗുമെന്‍റ്സിനെ കൊടുക്കുന്നു : int x , int y.
04:23 ആ വാല്യൂ a യിലും b യിലും സൂക്ഷിക്കുന്നു.
04:26 ഇവിടെ നമ്മുക്ക് operations എന്ന virtual function ഉണ്ട്.
04:30 ഇതില്‍ നമ്മള്‍ രണ്ട് നംബറുകള്‍ ആഡ് ചെയ്തു അതിന്‍റെ sum പ്രിന്‍റ് ചെയ്യുന്നു.
04:34 ഇവിടെ ക്ലാസ്സ്‌ അവസാനിക്കുന്നു.
04:37 Subtract എന്നത് ഒരു derived class. ആണ്.
04:41 ഇത് base class ആയ arithmetic ല്‍ നിന്നും ഇന്‍ഹെറിറ്റ് ചെയ്യുന്നു.
04:45 ഇതില്‍ രണ്ട് നമ്പറുകളുടെ വെത്യാസം കണ്ടുപിടിച്ച് അത് പ്രിന്‍റ് ചെയ്യുന്നു.
04:50 Multiply എന്നത് മറ്റൊരു derived class ആണ്.
04:54 ഇതും arithmetic എന്ന base classല്‍ നിന്നും ഇന്‍ഹെറിറ്റ് ചെയ്യുന്നു.
04:57 ഇതില്‍ രണ്ട് നമ്പറുകളുടെ ഗുണനം നടത്തി റിസള്‍ട്ട്‌ പ്രിന്‍റ് ചെയ്യുന്നു.
05:03 arithmetic. എന്ന base classല്‍ നിന്നും ഇന്‍ഹെറിറ്റ് ചെയ്യുന്ന മറ്റൊരു ക്ലാസ്സാണ് divide.
05:09 ഇതില്‍ രണ്ട് നമ്പറുകളുടെ ഹരണം നടത്തുന്നു. റിസള്‍ട്ട്‌ പ്രിന്‍റ് ചെയ്യുന്നു.
05:15 ഫങ്ഗ്ഷന്‍റെ return type ഉം കൊടുത്തിട്ടുള്ള arguments ഉം ഒരുപോലെ ആയിരിക്കും.
05:23 ഇത് നമ്മുടെ മെയിൻ ഫംഗ്ഷൻ ആണ്.
05:26 ക്ലാസ്സ്‌ arithmeticന് p എന്ന ഒരു ഒബ്ജെക്റ്റ് നിര്‍മിക്കുന്നു.
05:31 arith എന്നത് ക്ലാസ്സ്‌ arithmetic ലേക്കുള്ള pointer ആണ്.
05:35 ക്ലാസ്സ്‌ Subtractന്‍റെ ഒബ്ജെക്റ്റാണ് subt.
05:39 ക്ലാസ്സ്‌ Multiplyയുടെ ഒബ്ജെക്റ്റാണ് mult.
05:42 അതുപോലെ ക്ലാസ്സ്‌ Divideന്‍റെ ഒബ്ജെക്റ്റാണ് dvid.
05:46 ഇവിടെ p എന്നത് arithന്‍റെ address ആണ്.
05:50 values എന്ന ഫങ്ഗ്ഷന് 30, 12 എന്ന് ആര്‍ഗുമെന്‍റ്സ് കൊടുക്കുന്നു.
05:56 operations എന്ന ഫങ്ഗ്ഷനെ വിളിക്കുന്നു.
05:59 ഇത് addition ഓപ്പറേഷന്‍ ചെയ്യുന്നു.
06:02 ഇവിടെ arithനെ address ചെയ്യാന്‍ subt ഉപയോഗിക്കുന്നു.
06:07 ആര്‍ഗുമെന്‍റ്സ് ആയി 42, 5 കൊടുക്കുന്നു.
06:11 വീണ്ടും operations എന്ന ഫങ്ഗ്ഷന്‍ വിളിക്കുന്നു.
06:14 ഇത് രണ്ട് നമ്പറിന്‍റെ substraction ചെയ്യുന്നു.
06:18 ഇവിടെ mult നെ arithന്‍റെ “address” ആയി കൊടുക്കുന്നു.
06:22 ആര്‍ഗുമെന്‍റ്സ് ആയി 6, 5 കൊടുക്കുന്നു.
06:26 ഫങ്ഗ്ഷന്‍ operations വിളിക്കുന്നു.
06:29 ഇത് രണ്ട് നമ്പറിന്‍റെ multiplication ചെയ്യുന്നു.
06:33 ഇവിടെ dvid നെ arithന്‍റെ address ആയി കൊടുക്കുന്നു. ആര്‍ഗുമെന്‍റ്സ് ആയി 6, 3 കൊടുക്കുന്നു .
06:41 ഫങ്ഗ്ഷന്‍ operations വിളിക്കുന്നു.
06:44 ഇത് രണ്ട് നമ്പറിന്‍റെ division ചെയ്യുന്നു.
06:48 ഇതാണ് നമ്മുടെ return സ്റ്റേറ്റ്മെന്‍റ്.
06:50 ഇനി നമ്മുക്ക് പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യാം. നമ്മുക്ക് ടെര്‍മിനലിലേക്ക് തിരിച്ചു പോകാം.
06:54 കമ്പൈൽ ചെയ്യാൻ g++ സ്പേസ് override.cpp സ്പേസ് ഹൈഫൻ o സ്പേസ് over2 എന്ന് എഴുതുക.
07:04  എൻറ്റർ അമർത്തുക.
07:06 ./over2 എന്ന് ടൈപ്പ് ചെയ്യുക.
07:09  എൻറ്റർ അമർത്തുക.
07:11 നമ്മുക്ക് കിട്ടുന്ന ഔട്ട്പുട്ട് :
07:13 Addition of two numbers is 42
07:16 Difference of two numbers is 37
07:19 Product of two numbers is 30 , Division of two numbers is 2 എന്നായിരിക്കും.
07:25 നമ്മുക്ക് സ്ലൈഡിലേക്ക് മടങ്ങി പോകാം.
07:27 overloading and overridingന്‍റെ വെത്യാസം എന്താണെന്ന് നോക്കാം.
07:31 ഇന്‍ഹെറിറ്റന്‍സ് ഇല്ലാതെ Overloading ചെയ്യാന്‍ സാധിക്കും.
07:35 ഒരു ക്ലാസ്സില്‍ നിന്ന് മറ്റൊരു ക്ലാസ്സ്‌ ഇന്‍ഹെറിറ്റ് ചെയ്യുമ്പോഴാണ് Overriding നടക്കുന്നത്.
07:41 overloadingല്‍ ആര്‍ഗുമെന്‍റ്സും റിട്ടേണ്‍ ടൈപ്പും വെത്യസ്തമായിരിക്കണം.
07:46 overriding ല്‍ ആര്‍ഗുമെന്‍റ്സും റിട്ടേണ്‍ ടൈപ്പും ഒരുപോലെ ആയിരിക്കണം.
07:51 overloadingല്‍ ഫങ്ഗ്ഷന്‍റെ പേര് ഒരുപോലെ ആയിരിക്കും .
07:55 പക്ഷേ ആര്‍ഗുമെന്‍റ്സ് കൊടുക്കുന്നത് അനുസരിച്ച് പ്രവര്‍ത്തിയില്‍ വെത്യാസം വരുന്നു.
08:01 overriding ല്‍ ഫങ്ഗ്ഷന്‍റെ പേര് ഒരുപോലെ ആയിരിക്കും.
08:05 base class ല്‍ നിന്ന് Derived class functionന് വെത്യസ്ത ഓപ്പറേഷന്‍ ചെയ്യാന്‍ സാധിക്കും.
08:11 ചുരുക്കത്തിൽ
08:13 ഈ ട്യൂട്ടോറിയലിൽ നമ്മൾ പഠിച്ചത്,
08:15 ഫങ്ഷൻ ഓവര്‍ലോഡിംഗ്.
08:16 eg : മൂന്ന് വെത്യസ്ത ആര്‍ഗുമെന്‍റ്സ് ഉപയോഗിച്ച് . int add
08:21 രണ്ട് വെത്യസ്ത ആര്‍ഗുമെന്‍റ്സ് ഉപയോഗിച്ച് float add
08:24 ഫങ്ഷൻ ഓവര്‍െെറഡിങ്.
08:26 eg. virtual int operations () , int operations ()
08:31 ആര്‍ഗുമെന്‍റ്സും റിട്ടേണ്‍ ടൈപ്പും ഒരുപോലെ ആയിട്ടുള ഫങ്ഗ്ഷന്‍സ് ആണ് പക്ഷെ രണ്ടും വെത്യസ്തങ്ങള്‍ ആണ്.
08:38 നിങ്ങൾ ചെയേണ്ടത്
08:39 function overloading ഉപയോഗിച്ച്, rectangle, square, circle ഇവ മൂന്നിന്‍റെയും area കാണാനുള്ള പ്രോഗ്രാം എഴുതുക.
08:48 താഴെ കാണിച്ചിരിക്കുന്ന ലിങ്കിൽ ലഭ്യമായ വീഡിയോ കാണുക.
08:52 ഇത് സ്പോകെന്‍ ടൂടോറിയല്‍ പ്രൊജക്റ്റ്‌നെ സംഗ്രഹിക്കുന്നു.
08:55 നല്ല ബാന്ഡ് വിഡ്ത്ത് ഇല്ലെങ്കിൽ, നിങ്ങൾക്ക് അതു ഡൌണ്‍ലോഡ് ചെയ്ത് കാണാം.
08:59 സ്പോക്കണ് ട്യൂട്ടോറിയൽ പ്രോജക്ട് ടീം,
09:02 സ്പോക്കണ് ട്യൂട്ടോറിയൽസ് ഉപയോഗിച്ച് വർക്ക്‌ ഷോപ്സ് നടത്തിവരുന്നു.
09:05 ഓൺലൈൻ പരിക്ഷ പാസാകുന്നവർക്ക് സർട്ടിഫിക്കറ്റുകൾ നൽകുന്നു.
09:09 കൂടുതൽ വിവരങ്ങൾക്ക്, ഞങ്ങൾക്ക് എഴുതുക contact@spoken-tutorial.org
09:16 സ്പോക്കണ് ട്യൂട്ടോറിയല്‍ പ്രോജക്റ്റ് ടോക്ക് ടു എ ടീച്ചർ എന്ന പദ്ധതിയുടെ ഭാഗമാണ്.
09:20 ഇതിനെ പിന്തുണയ്ക്കുന്നത്‌, നാഷണൽ മിഷൻ ഓണ് എഡ്യൂക്കേഷൻ ത്രൂ ICT, MHRD, ഗവണ്മെന്റ് ഓഫ് ഇന്ത്യ.
09:27 ഈ മിഷൻനെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ചുവടെ കാണിച്ചിരിക്കുന്നു ലിങ്കിൽ ലഭ്യമാണ്
09:32 ഇത് ജെയിൻ ജോസഫ്‌. ഞങ്ങളോടൊപ്പം ചേർനതിന് നന്ദി.

Contributors and Content Editors

Devisenan, Janejoseph 15, Pratik kamble, Vijinair