Vous êtes sur la page 1sur 43

C++ NOTES

C++[OBJECT ORIENTED PROGRAMMING(OOPS)]



=========================================
Object oriente !ro"r#$$in" %#& e'e(o!e bec#)&e &e'er#(
(i$it#tion& %ere i&co'ere in !roce)r#( oriente !ro"r#$$in"
#!!ro#c*e&+ C, P#&c#(, -ORTRAN, etc+++ #re !ro"r#$$in"
(#n")#"e& %it* &tr)ct)re !ro"r#$$in" #!!ro#c*+ !ro"r#$$in"
in t*i& (#n")#"e& i& one b. bre#/in" # !rob(e$ into &$#((er )nit&
c#((e 0)nction&+#& # !rob(e$ beco$e& co$!(e1,n)$ber o0
0)nction& or !roce)re& "ro% (#r"er #n t*en !ro"r#$ beco$e
)n$#n#"#b(e, i00ic)(t to )ner&t#n,#n $oi0.+&o %e c#n #'oi
#(( t*i& i00ic)(t.& )&in" c+++
IMPORTANT C2ARACTERISTICS O- OOPS
====================================
C3ASS
=====
Str)ct)re& #re )&e to !ro'ie # %#. to "ro)! #t#
e(e$ent&+#n 0)nction& %*ic* or"#ni4e !ro"r#$ #ction& into
n#$e entitie&+ A c(#&& i& #n )nit %*ic* co$bine& bot* #t# #n
t*e 0)nction& t*#t o!er#te& on t*e #t#+t*e intern#( #t# o0 t*e c(#&&
i& c#((e #& $e$ber #t# #n t*e 0)nction& #re c#((e $e$ber
0)nction&+t*e $e$ber 0)nction& $o&t(. $#ni!)(#te t*e intern#(
#t# o0 # c(#&& t*e $e$ber #t# o0 # c(#&& &*o)( not nor$#((.
Be #re&&e o)t&ie # $e$eber 0)nction&+t*e '#ri#b(e& o0 # c(#&&
#re c#((e o0 # c(#&& #re c#((e object& or in&t#nce& o0 # c(#&&+
A c(#&& i& # co((ection o0 object&+
CSC-AVINASHI AND CSC-GANAPATHY 1
C++ NOTES
ENCAPS53ATION
===============
Enc#!&)(#tion !ro'ie& n)$ero)& #'#nt#"e&+it !ro'ie&
!rotection to #t# %*ic* i& !#c/#"e %it* t*e !roce)re&+ I0 #t#
i& ec(#re !ri'#te t*en it %i(( be #cce&&ib(e %it*in t*#t !#c/#"e or
c(#&& on(.+t*i& en&)re& t*#t on(. t*#t c(#&& $e$ber 0)nction c#n
#cce&& t*e #t#+# *i"*(. )&e0)( %#. o0 !rotection in
$)(ti!ro"r#$$in" !roject&+%it* enc#!&)(#tion (#r"e !ro"r#$& c#n
beco$e $)c* $ore re##b(e bec#)&e #(( t*e re#(ete coe& #n
#t# #re in one !(#ce+
E+"+6 c#!&)(e
IN2ERITANCE
============
B)i(in" ne% eri'e c(#&&e& t*#t in*erit t*e #t# #n
0)nction& 0ro$ one or $ore !re'io)&(. e0ine b#&e c(#&&e& %*i(e
!o&&ib(. ree0inin" or #in" ne% #t# #n #ction& t*i& cre#te& #
*ier#rc*. o0 c(#&&e&+
E+"+ 0rien
PO37MORP2ISM
==============
Gi'in" #n #ction one n#$e or &.$bo( t*#t i& &*#re )! #n
o%n # c(#&& *ier#rc*. %it* e#c* c(#&& in t*e *ier#rc*.
i$!(e$entin" t*e #ction in # %#. #!!ro!ri#te to it&e(0+
CSC-AVINASHI AND CSC-GANAPATHY 2
C++ NOTES
O8ER3OADING
=============
Anot*er !o%er0)( #n )&e0)( conce!t o0 object oriente
!ro"r#$$in" i& o'er(o#in" #((o%& o!er#tion %it* t*e &#$e n#$e
b)t i00erent &e$#ntic& #n i00erent %#.& o0 i$!(e$ent#tion to
be in'o/e 0or object& o0 i00erent t.!e+
ACCESS SPECI-IERS
=================
P5B3IC
I0 # $e$ber i& !)b(ic, it c#n be )&e b. #n. 0)nction+
In c++, $e$ber& o0 # &tr)ct or )nion #re !)b(ic b. e0#)(t+
PRI8ATE
I0 # $e$ber i& !ri'#te, it c#n on(. be )&e b. $e$ber 0)nction&
#n 0rien& o0 t*e c(#&& in %*ic* it i& ec(#re+ Me$ber& o0 # c(#&&
#re !ri'#te b. e0#)(t+

PROTECTED
I0 # $e$ber i& !rotecte, it& #cce&& i& t*e &#$e #& 0or !ri'#te+ In
#ition, t*e $e$ber c#n be )&e b. $e$ber 0)nction& #n
0rien& o0 c(#&&e& eri'e 0ro$ t*e ec(#re c(#&&, b)t on(. in
object& o0 t*e eri'e
CSC-AVINASHI AND CSC-GANAPATHY 3
C++ NOTES
T.!e+.o) c#n o'errie t*e e0#)(t &tr)ct #cce&& %it* !ri'#te or
!rotecte+ 7o) c#n9t o'errie t*e e0#)(t )nion #cce&&+
EX1://ACCESSING MEMBERS FROM INSIDE OF THE
CLASS
#include<io!"e#$%&'
#include<conio%&'
cl# (i"!
)
*"i+#!e:
in! #,-,c.
*u-lic:
+oid /e!01
)
cou!<<2En!e" !3o nu$-e" :2.
cin''#''-.
4
+oid *u!01
)
c5#6-.
cou!<<2Add!ion o( !3o nu$-e" i :2<<c.
4
4.
+oid $#in01
)
cl"c"01.
CSC-AVINASHI AND CSC-GANAPATHY 4
C++ NOTES
cl# (i"! (.
(%/e!01.
(%*u!01.
/e!c&01.
4
EX 7://ACCESSING MEMBERS FROM O8TSIDE OF THE
CLASS
#include<io!"e#$%&'
#include<conio%&'
cl# (i"!
)
*"i+#!e:
in! #,-,c.
*u-lic:
+oid /e!01.
+oid *u!01.
4.
+oid (i"!::/e!01
)
cou!<<2En!e" T3o Nu$-e" :2.
cin''#''-.
4
+oid (i"!::*u!01
)
c5#6-.
CSC-AVINASHI AND CSC-GANAPATHY 5
C++ NOTES
cou!<<2Addi!ion :2<<c.
4
+oid $#in01
)
cl"c"01.
cl# (i"! (.
(%/e!01.
(%*u!01.
/e!c&01.
4
/9 CONSTR8CTOR
A CONSTR5CTOR IS A SPECIA3 T7PE O- -5NCTION
:IT2IN A C3ASS :2IC2 2AS T2E SAME NAME O- T2E
C3ASS+ T2E CONSTR5CTOR :I33 BE A5TOMATICA337
IN8O;ED AT T2E TIME O- CREATING AN OBJECT -OR
T2E C3ASS+ NORMA337 T2E CONSTR5CTOR IS 5SED
-OR INITIA3ISING T2E MEMBERS O- A C3ASS+ T2E
CONSTR5CTOR S2O53D NOT 2A8E AN7 RET5RN T7PE
AND M5ST BE IN P5B3IC SECTION+
cl# <cl#n#$e'
)
*"i+#!e:
%%%%%%%%%%%%%
*u-lic:
%%%%%%%%%%%
CSC-AVINASHI AND CSC-GANAPATHY 6
C++ NOTES
<cl#n#$e'0:#"/u$en!;1 //Con!"uc!o"
)
%%%%%%%%%%%%%
4
4.
9/
EX<:
#include<io!"e#$%&'
#include<conio%&'
cl# !"i
)
in! #,-,c.
*u-lic:
!"i01
)
#5=. -5=. c5=.
cou!<<2Con!"uc!o" i In+o>ed?n2.
4
+oid di*01
)
cou!<<2A 5 2<<#<<2 B 5 2<<-<<2 C 5
2<<c<<endl.
#66.-66.c66.
4
4.
CSC-AVINASHI AND CSC-GANAPATHY 7
C++ NOTES
+oid $#in01
)
cl"c"01.
!"i o-.
o-%di*01.
o-%di*01.
/e!c&01.
4
/9 CO@A CONSTR8CTIR
T2E COP7 CONSTR5CTOR IS 5SED -OR INITIA3ISING
AN OBJECT :IT2 ANOT2ER OBJECT O- T2E SAME
C3ASS+
<<PRESENCE O- A DE-A53T CONSTR5CTOR IS A M5ST+
=CONSNAME>(=C3ASSNAME> ?PTR)
@
A=PTR+AA
B=PTR+BA
B
9/
CSC-AVINASHI AND CSC-GANAPATHY 8
C++ NOTES
EX B:
#include<io!"e#$%&'
#include<conio%&'
cl# !"
)
in! #,-.
*u-lic:
!"01
)
#5=.
-5=.
cou!<<2De(#ul! Con!"uc!o" i
In+o>ed2<<endl.
4
!"0!" C*!"1
)
#5*!"%#.
-5*!"%-.
cou!<<2Co*D con!"uc!o" i in+o>ed2<<endl.
4
+oid di*01
)
cou!<<2A 5 2<<#<<2 B 5 2<<-<<endl.
4
+oid c&#n/e01
)
#517.
CSC-AVINASHI AND CSC-GANAPATHY 9
C++ NOTES
-517.
4
4.
+oid $#in01
)
cl"c"01.
cou!<<2Fi"! O-Eec!?n2.
!" o-.
o-%di*01.
o-%c&#n/e01.
cou!<<2A(!e" c#llin/ C&#n/e Func!ion?n2.
o-%di*01.
cou!<<2Second O-Eec!?n2.
!" o-10o-1.
o-1%di*01.
/e!c&01.
4
//EX F:O+e"lo#din/ # Con!"uc!o"
#include<io!"e#$%&'
#include<conio%&'
cl# !"i
)
in! #,-,c.
*u-lic:
!"i01
CSC-AVINASHI AND CSC-GANAPATHY 10
C++ NOTES
)
cou!<<2Con!"uc!o" 3i!& = #"/u$en! i
c#lled2<<endl.
#5=. -5=. c5=.
4
!"i0in! i1
)
#5i. -5=. c5=.
cou!<<2Con!"uc!o" 3i!& 1 #"/u$en! i
c#lled2<<endl.
4
!"i0in! i,in! E1
)
#5i. -5E. c5=.
cou!<<2Con!"uc!o" 3i!& 7 #"/u$en! i
c#lled2<<endl.
4
!"i0in! i,in! E,in! >1
)
cou!<<2Con!"uc!o" 3i!& < #"/u$en! i
c#lled2<<endl.
#5i. -5E. c5>.
4
+oid di*01
)
cou!<<2A 5 2<<#<<2 B 5 2<<-<<2 C 5
2<<c<<endl.
4
CSC-AVINASHI AND CSC-GANAPATHY 11
C++ NOTES
4.
+oid $#in01
)
cl"c"01.
!"i o-1.
o-1%di*01.
!"i o-70171.
o-7%di*01.
!"i o-<017,1<1.
o-<%di*01.
!"i o-B017,1<,1B1.
o-B%di*01.
/e!c&01.
4
/9 DESTR8CTOR
A DESTR5CTOR IS A -5NCTION :2IC2 IS IN8O;ED
:2EN AN OBJECT 3OSSES ITS SCOPE+ T2E
DESTR5CTOR RE3EASES T2E MEMOR7 OCC5PIED B7
T2E OBJECT+ T2E DESTR5CTOR 2AS SAME NAME O-
T2E C3ASS :IT2 A TI3DE S7MBO3 (C) BE-ORE IT+
T2E DESTR5CTOR M5ST NOT 2A8E AN7 ARG5MENTS
OR RET5RN 8A35E+
CSC-AVINASHI AND CSC-GANAPATHY 12
C++ NOTES
G<cl#n#$e'01
)
e! o( !#!e$en!
4
9/ EX H
#include<io!"e#$%&'
#include<conio%&'
in! o-coun!5=.
cl# !"
)
in! i,E.
*u-lic:
!"01
)
cou!<<2Con!"uc!o" in+o>ed2<<endl.
i517.E517.
o-coun!66.
cou!<<2No o( O-Eec! cu""en!lD *"een! 5
2<<o-coun!<<endl.
4
G!"01
)
CSC-AVINASHI AND CSC-GANAPATHY 13
C++ NOTES
cou!<<2De!"uc!o" i in+o>ed?n2.
i5=.
E5=.
o-coun!II.
cou!<<2No o( O-Eec! cu""en!lD *"een! 5
2<<o-coun!<<endl.
4
4.
+oid $#in01
)
cl"c"01.
cl# !" o-.
)
cou!<<2Bloc> Be/in?n2.
cl# !" o-1,o-7.
cou!<<2Bloc> End?n2.
4
cou!<<2M#in #lo end no3?n2.
/e!c&01.
4
D< D7NAMIC MEMOR7 A33OCATION
D7NAMIC MEMOR7 A33OCATION T2IS NAME SPECI-7
T7PE O- T2E MEMOR7 A33OCATION+ NORMA337 T2E
C++ COMPAI3OR A33OCATES ON37 T2E STATIC
MEMOR7+B5T I- 7O5 5SE T2E -EAT5RES O- D7NAMIC
MEMOR7 A33OCATION T2E COMPAI3OR A33OCATE
CSC-AVINASHI AND CSC-GANAPATHY 14
C++ NOTES
T2E MEMOR7 ON37 -OR NEEDED
SPACE(D7NAMICA337)+
DDn#$ic $e$o"D Alloc#!ion O*e"#!o":
999999999999999999999999999999999999
11ne3%
71dele!e%
EJK
#include<io!"e#$%&'
+oid $#in01
)
in! 9*!",i.
*!"5ne3 in!:F;.
cou!<<2En!e" F In!e/e" :2<<endl.
(o"0i5=.i<F.i661
cin''*!":i;. // o" cin''90*!"6i1.
cou!<<2T&e Gi+en F In!e/e" #"e :2<<endl.
(o"0i5=.i<F.i661
cou!<<90*!"6i1<<endl.
dele!e :; *!".
4
/9
IN3INE -5NCTIONS
GGGGGGGGGGGGGGGG
:2I3E CA33ING A -5NCTION T2E CONTRO3 IS
TRANS-ERED TO T2E -5NCTION+ A-TER COMP3ETING
T2E EEEC5TION O- T2E -5NCTIONS T2E CONTRO3
CSC-AVINASHI AND CSC-GANAPATHY 15
C++ NOTES
RET5RNS BAC; TO T2E CA33ING -5NCTION+ T2E TIME
TA;EN -OR T2IS CONTRO3 TRANS-ER CAN BE
A8OIDED B7 T2E 5SAGE O- T2E FIN3INE -5NCTIONSF+
S7NTAE6
IN3INE =RET5RN T7PE> =-5NCTION NAME>
( ARG5MENT T7PES)
@
SET O- STATEMENTSA
B
:2EN T2E COMPI3ER COMES ACROSS T2E CA33 O-
IN3INE -5NCTION T2EN T2E CODE O- T2E -5NCTION
:I33 BE S5BSTIT5TED AT T2E POINT O- -5NCTION
CA33+ :2I3E EEEC5TING T2E -5NCTION T2ERE IS NO
NEED O- CONTRO3 TRANS-ER BECA5SE A33 T2E
CODES ARE S5BSTIT5TED IN T2E CA33ING PROGRAM
ITSE3-+ SO T2E TIME TA;EN -OR CONTRO3 TRANS-ER
CAN BE A8OIDED+
9/
EX L
#include<io!"e#$%&'
#include<conio%&'
inline +oid #dd0in! #,in! -1
)
cou!<<2Su$ 5 2<<#6-<<endl.
CSC-AVINASHI AND CSC-GANAPATHY 16
C++ NOTES
4
+oid $#in01
)
in! #,-,c,d.
cl"c"01.
cou!<<2En!e" !&e M#lue o( A, B, C #nd D :
2.
cin''#''-''c''d.
#dd0#,-1.
#dd0c,d1.
/e!c&01.
4
/9
-5NCTION O8ER3OADING
CCCCCCCCCCCCCCCCCCCCCCCCC
-5NCTION O8ER3OADING IS A PROPERT7 B7 :2IC2
MORE T2AN ONE -5NCTIONS S2ARE T2E SAME NAME+
T2E T7PE AND N5MBER O- ARG5MENTS IN EAC2
-5NCTION MA7 DI--ER+
9/
EX N
#include<io!"e#$%&'
#include<conio%&'
#include<!dio%&'
#include<!"in/%&'
+oid #dd0in!,in!1.
CSC-AVINASHI AND CSC-GANAPATHY 17
C++ NOTES
+oid #dd0in!,in!,in!1.
+oid #dd0(lo#!,(lo#!1.
+oid #dd0c&#" #:1=;,c&#" -:7=;1.
+oid $#in01
)
cl"c"01.
in! #,-,i.
(lo#! c,d.
c&#" e:1=;,(:1=;.
cou!<<2En!e" !&e +#lue o( A #nd B:2.
cin''#''-.
#dd0#,-1.
cou!<<2En!e" !&e M#lue o( A #nd B #nd I: 2.
cin''#''-''i.
#dd0#,-,i1.
cou!<<2En!e" !&e +#lue o( C #nd D:2.
cin''c''d.
#dd0c,d1.
cou!<<2En!e" !&e T3o S!"in/ E #nd F:2.
/e!0e1.
/e!0(1.
#dd0e,(1.
/e!c&01.
4
+oid #dd0in! J,in! D1
)
CSC-AVINASHI AND CSC-GANAPATHY 18
C++ NOTES
in! O5J6D.
cou!<<2?nIn!e/e" Su$ 5 2<<O<<2?n2.
4
+oid #dd0in! J,in! D,in! O1
)
in! 35J6D6O.
cou!<<2Su$ o( < In!e/e" 5 2<<3<<endl.
4
+oid #dd0(lo#! J,(lo#! D1
)
(lo#! O5J6D.
cou!<<2?nFlo#! Su$ 5 2<<O<<2?n2.
4
+oid #dd0c&#" #:1=;,c&#" -:1=;1
)
c&#" c:<=;.
!"c*D0c,#1.
!"c#!0c,-1.
cou!<<2S!"in/ Conc#!en#!ion i 2<<c<<2?n2.
B
/9TEM@LATES
C++ PRO8IDES CERTAIN -EAT5RES :IT2 T2E
CAPABI3IT7 TO DE-INE A SING3E -5NCTION -OR A
GRO5P O- SIMI3AR -5NCTION+:2EN A SING3E
-5NCTION IS :RITTEN -OR A -AMI37 O- SIMI3AR
-5NCTIONS+T2E7 ARE CA33ED AS -5NCTION
TEMP3ATES+T2E MAIN AD8ANTAGE O- 5SING
CSC-AVINASHI AND CSC-GANAPATHY 19
C++ NOTES
-5NCTION TEMP3ATE IS A8OIDING 5NNECESSAR7
REPETATION O- T2E SO5RCE CODE+
SANTAX
!e$*l#!e <cl# !D*e'
#include<io!"e#$%&'
#include<conio%&'
in! $#J0in! #,in! -1
)
i(0#'-1
"e!u"n0#1.
ele
"e!u"n0-1.
4
dou-le $#J0dou-le #,dou-le -1
)
i(0#'-1
"e!u"n0#1.
ele
"e!u"n0-1.
4
c&#" $#J0c&#" #,c&#" -1
)
i(0#'-1
"e!u"n0#1.
ele
"e!u"n0-1.
4
+oid $#in01
CSC-AVINASHI AND CSC-GANAPATHY 20
C++ NOTES
)
cl"c"01.
cou!<<$#J07=,<=1<<endl.
cou!<<$#J0B%F,H%K1<<endl.
cou!<<$#J0P#P,P-P1<<endl.
/e!c&01.
4
EX 1=
SAME @ROGRAM QITH TEM@LATE CLASS
#include<io!"e#$%&'
#include<conio%&'
!e$*l#!e<cl# T'
T $#J0T J,T D1
)
i(0J'D1
"e!u"n0J1.
ele
"e!u"n0D1.
4.
+oid $#in01
)
cl"c"01.
cou!<<$#J01K,1N1<<endl.
cou!<<$#J01%F,H%K1<<endl.
cou!<<$#J0P#P,P-P1<<endl.
/e!c&01.
4
CSC-AVINASHI AND CSC-GANAPATHY 21
C++ NOTES
/9
-RIEND -5NCTIONS
CCCCCCCCCCCCCCCC
A -RIEND -5NCTION IS NOT A MEMBER -5NCTION O-
C3ASS B5T 2AS RIG2TS TO ACCESS T2E PRI8ATE
MEMBERS O- T2E C3ASS+
T2E -RIEND -5NCTIONS RECIE8E T2E OBJECT O- T2E
C3ASS AS ARG5MENT AND -ROM T2E OBJECT T2E
PRI8ATE MEMBERS ARE ACCESSED+
S7NTAE6
C3ASS =C3ASS NAME>
@
PRI8ATE6
+++++++++++++++
+++++++++++++++
P5B3IC6
+++++++++++++++
-RIEND =RET5RN T7PE> =-5NCTION
NAME>(=ARG5MENTS>)A
BA
<D
//EX11 :F"iend Func!ion (o" # Sin/le Cl#
/9
#include<io!"e#$%&'
#include<conio%&'
cl# #
CSC-AVINASHI AND CSC-GANAPATHY 22
C++ NOTES
)
*"i+#!e:
in! J.
*u-lic:
#01
)
J51=.
4
("iend +oid di0# o-1.
4.
+oid di0# o-1
)
cou!<<2T&e M#lue o( !&e @"i+#!e $e$-e" o( A
5 2<<o-%J.
4
//IIIIIIIIIIIIIIIIIIII
+oid di10# o-1
)
cou!<<2@"i+#!e $e$-e" o( A 5 2<<o-%J.
//Le#d !o #n E""o"
4
//IIIIIIIIIIIIIIIIIIII
+oid $#in01
)
cl"c"01.
# o-.
di0o-1.
//di10o-1.
/e!c&01.
CSC-AVINASHI AND CSC-GANAPATHY 23
C++ NOTES
4
9/
//EX 17:F"iend Func!ion (o" Mo"e !&#n One
cl#
/9
#include<io!"e#$%&'
#include<conio%&'
cl# -. //E""o" 3ill "ie i( !&i
decl#"#!ion i o$i!!ed%
cl# #
)
in! #+.
*u-lic:
#01
)
#+517.
4
("iend di0# #o-,- -o-1.
4.
cl# -
)
in! -+.
*u-lic:
-01
)
-+5H.
CSC-AVINASHI AND CSC-GANAPATHY 24
C++ NOTES
4
("iend di0# #o-,- -o-1.
4.
di0# #o-,- -o-1
)
cou!<<2A o-Eec! M#"i#-le M#lue 5
2<<#o-%#+<<2?n2.
cou!<<2B o-Eec! M#"i#-le M#lue 5
2<<-o-%-+<<2?n2.
4
+oid $#in01
)
cl"c"01.
# o#.
- o-.
di0o#,o-1.
/e!c&01.
4
DDEEGH -RIEND C3ASSES
DDA C3ASS CAN A3SO BE A -RIEND O- ANOT2ER C3ASS+
NO: PRI8ATE MEMBERS O- T2E
DDC3ASS CAN BE ACCESSED B7 A33 T2E MEMBERS O-
T2E -RIEND C3ASS
/9
#include<io!"e#$%&'
#include<conio%&'
cl# #
CSC-AVINASHI AND CSC-GANAPATHY 25
C++ NOTES
)
in! ##.
*u-lic:
("iend cl# -.
#01
)
##51=.
4
4 .
cl# -
)
*u-lic:
+oid di0# #o-1
)
cou!<<2T&e M#lue o( !&e @"i+#!e +#"i#-le o(
Cl# A : 2<<#o-%##.
4
4.
+oid $#in01
)
cl"c"01.
# o-1.
- o-7.
o-7%di0o-11.
/e!c&01.
4
9/
CSC-AVINASHI AND CSC-GANAPATHY 26
C++ NOTES
8IRT5A3 -5NCTION
BINDING CONCEPTS6
T2E PROCESS O- ASSOCIATING A MEMBER
-5NCTION :IT2 T2E OBJECT IS CA33ED BINDING+
T7PES O- BINDING6
G)EAR37 BINDING (OR) STATIC BINDING+
I)3ATE BINDING (OR) D7NAMIC BINDING+
EX 1B
#include<io!"e#$%&'
#include<conio%&'
cl# #
)
*u-lic:
+oid di01
)
cou!<<2T&i i !&e Func!ion o( B#e
cl#?n2.
4
4.
cl# - : *u-lic #
)
*u-lic:
+oid di01
CSC-AVINASHI AND CSC-GANAPATHY 27
C++ NOTES
)
cou!<<2T&i i !&e Func!ion o( De"i+ed
Cl#?n2.
4
4.
+oid $#in01
)
- -o-.
# 9o-.
cl"c"01.
o-5C-o-.
o-I'di01.
/e!c&01.
4
/9
IN T2E ABO8E EEAMP3E A3:A7S T2E POINTER O-
BASE C3ASS :I33 CA33 ON37 T2E+
BASE C3ASS -5NCTION AND NOT T2E DERI8ED C3ASS
-5NCTION+
I- :E DEC3ARE T2E BASE C3ASS -5NCTION AS
8IRT5A3 -5NCTION T2EN IT :I33 CA33 T2E DERI8ED
C3ASS -5NCTION+ T2IS PROPERT7 IS CA33ED AS 3ATE
BINDING+
8IRT5A3 8OID DIS()
@
CO5T==FT2IS IS T2E -5NCTION O- BASE C3ASSFA
CSC-AVINASHI AND CSC-GANAPATHY 28
C++ NOTES
B
/9
IN2ERITANCE
IN2ERITANCE IS T2E PROPERT7 B7 :2IC2 A C3ASS
GETS ACCESS TO T2E MEMBERS O- ANOT2ER C3ASS+
:E CAN CA33 T2E MET2ODS O- A C3ASS -ROM T2E
IN2ERITED C3ASS+ T2E MAJOR AD8ANTAGE IS T2E
RE5SABI3IT7 O- CODE+
T2E FPROTECTEDF MEMBERS O- A C3ASS CAN BE
ACCESSED B7 T2E IN2ERITED C3ASS+
T2E MAIN C3ASS IS CA33ED AS A PARENT C3ASS AND
T2E C3ASS IN2ERITING DATA AND CODE -ROM IT IS
CA33ED AS T2E DERI8ED C3ASS+
T2E IN2ERITANCE CAN BE EIT2ER IN PRI8ATE OR IN
P5B3IC MODE+
T7PES O- IN2ERITANCE
CCCCCCCCCCCCCCCCCCCCC
G+ SING3E IN2ERITANCE J A C2I3D C3ASS
IN2ERITS -ROM
ONE PARENT C3ASS
I+ M53TIP3E IN2ERITANCE J A C2I3D C3ASS IN2ERITS
-ROM
MORE T2AN ONE PARENT
CSC-AVINASHI AND CSC-GANAPATHY 29
C++ NOTES
H+ 2IERARC2IA3 IN2ERITANCE J MORE T2AN ONE
C2I3D C3ASSES
ARE IN2ERITING A
SING3E PARENT+
K+ M53TI3E8E3 IN2ERITANCE J A C2I3D C3ASS
IN2ERITS -ROM
A BASE C3ASS :2IC2
A3READ7 IN2ERITS -ROM
ANOT2ER BASE C3ASS+
L+ 27BRID IN2ERITANCE J AN C2I3D
C3ASS IS DERI8ED
-ROM A BASE C3ASS
AND ONE OR T:O C2I3D
C3ASSES IS CA33ED AS
27BRID
IN2ERITANCE+
011 071 0<1 0B1
0F1
A A B A A
A
R RSSSR SSRSS R
R
CSC-AVINASHI AND CSC-GANAPATHY 30
C++ NOTES
B R R R B
B D
C B C R
R R
C C R
RSSSR

R

R

E
EX 1F:Sin/le In&e"i!#nce
#include<io!"e#$%&'
#include<conio%&'
cl# #
)
*"o!ec!ed:
//T&e *"o!ec!ed $e$-e" c#nno! -e #cceed
di"ec!lD ("o$ !&e o-Eec! o( !&e
//de"i+ed cl# %I! c#n -e #cceed onlD -D
!&e o!&e" (unc!ion o( !&e de"i+ed
//cl#%
+oid d101
)
cou!<<2T&i i !&e B#e Cl# (unc!ion in
@"o!ec!ed Sec!ion?n2.
CSC-AVINASHI AND CSC-GANAPATHY 31
C++ NOTES
4
*u-lic:
+oid d701
)
cou!<<2T&i i !&e B#e Cl# (unc!ion in
@u-lic Sec!ion?n2.
4
4.
cl# - : *u-lic #
)
*u-lic:
+oid d1101
)
d101.
4
4.
+oid $#in01
)
- o-.
cl"c"01.
o-%d101.
o-%d701.
/e!c&01.
4
//I( 3e in&e"i! !&e -#e cl# in *"i+#!e
$ode !&en 3e c#nno! #cce e+en
CSC-AVINASHI AND CSC-GANAPATHY 32
C++ NOTES
//!&e *u-lic $e$-e" di"ec!lD ("o$ !&e
o-Eec!%
cl# - : *"i+#!e #
)
*u-lic:
+oid d1101
)
d101. //Indi"ec! C#llin/ o( B#e cl#
(unc!ion
4
+oid d7701
)
d701. //Indi"ec! C#llin/ o( B#e cl#
(unc!ion
4
4.
+oid $#in01
)
- o-.
cl"c"01.
o-%d1101.
o-%d7701.
/e!c&01.
4
EX 1H: Mul!i*le In&e"i!#nce
CSC-AVINASHI AND CSC-GANAPATHY 33
C++ NOTES
#include<io!"e#$%&'
#include<conio%&'
cl# #
)
*u-lic:
+oid d101
)
cou!<<2T&i i !&e Func!ion in B#e cl#
1?n2.
4
4.
cl# -
)
*u-lic:
+oid d701
)
cou!<<2T&i i !&e Func!ion in B#e cl#
7?n2.
4
4.
cl# c :*u-lic #,*u-lic -
)
4.
+oid $#in01
)
c o-.
cl"c"01.
o-%d101.
o-%d701.
CSC-AVINASHI AND CSC-GANAPATHY 34
C++ NOTES
/e!c&01.
4
EX 1K Hie"#"c&i#l In&e"i!#nce
#include<io!"e#$%&'
#include<conio%&'
cl# #
)
*u-lic:
+oid d101
)
cou!<<2T&i i !&e Func!ion in B#e
cl#?n2.
4
4.
cl# - : *u-lic #
)
4.
cl# c :*u-lic #
)
4.
+oid $#in01
)
- -o-.
c co-.
cl"c"01.
-o-%d101.
co-%d101.
/e!c&01.
4
CSC-AVINASHI AND CSC-GANAPATHY 35
C++ NOTES
EX 1L Mul!ile+el In&e"i!#nce
#include<io!"e#$%&'
#include<conio%&'
cl# #
)
*u-lic:
+oid d101
)
cou!<<2T&i i !&e Func!ion in InDi"ec! B#e
cl#?n2.
4
4.
cl# - : *u-lic #
)
*u-lic:
+oid d701
)
cou!<<2T&i i !&e Func!ion in Di"ec! B#e
cl#?n2.
4
4.
cl# c :*u-lic -
)
4.
+oid $#in01
)
c co-.
cl"c"01.
CSC-AVINASHI AND CSC-GANAPATHY 36
C++ NOTES
co-%d101. //C#llin/ Indi"ec! B#e cl#
(unc!ion
co-%d701. //C#llin/ Di"ec! B#e cl#
(unc!ion
/e!c&01.
4
EX 1N HABRID INHERITANCE
#include<io!"e#$%&'
#include<conio%&'
cl# #
)
*u-lic:
di01
)
cou!<<2Func!ion in Fi"! B#e Cl# A?n2.
4
4.
cl# - : *u-lic #
)
*u-lic:
di101
)
cou!<<2Func!ion in 1! Le+el C&ild Cl#
B?n2.
4
4.
CSC-AVINASHI AND CSC-GANAPATHY 37
C++ NOTES
cl# c : *u-lic -
)
*u-lic:
di701
)
cou!<<2Func!ion in 7nd Le+el C&ild Cl#
C?n2.
4
4.
cl# d
)
*u-lic:
di<01
)
cou!<<2Func!ion in Second B#e Cl#
D?n2.
4
4.
cl# e: *u-lic c,*u-lic d
)
*u-lic:
diB01
)
cou!<<2Func!ion in !&e Fin#l Cl# E?n2.
4
4.
+oid $#in01
CSC-AVINASHI AND CSC-GANAPATHY 38
C++ NOTES
)
cl# e o-.
cl"c"01.
o-%di01.
o-%di101.
o-%di701.
o-%di<01.
o-%diB01.
/e!c&01.
4
-I3E 2AND3ING
STREAMS
I-STREAM JJJJJ T2IS IS 5SED :2ENE8ER T2E 5SER
:IS2 TO READ A -I3E+
O-STREAM JJJJJ T2IS IS 5SED TO :RITE T2E DATA TO
T2E -I3E+
-STREAM JJJJJ BOT2 T2E READ AND :RITE OPERATION
ON T2E -I3E+
:RITING OBJECT TO T2E -I3E+
T2E MEMBER -5NCTION :RITE() IS 5SED TO SA8E T2E
STREAM O- OBJECT ON A SPECI-IED -I3E T2E
GENERA3 -ORM O- :RITE() ID,
IN-I3E+:RITE((C2AR <) ?OBJECT,SIMEO-(OBJECT))
CSC-AVINASHI AND CSC-GANAPATHY 39
C++ NOTES
//EX 7= : FILEQRITING
#include<io!"e#$%&'
#include<(!"e#$%&'
#include<conio%&'
cl# i!e$
)
*"i+#!e:
in! i!no.
c&#" i!n#$e:1=;.
in! !oc>.
(lo#! **"ice,*"ice.
*u-lic:
+oid /e!Si!e$01.
4.
+oid i!e$::/e!Si!e$01
)
cou!<<2?n?! en!e" !&e i!e$ nu$-e":2.
cin''i!no.
cou!<<2?n?! en!e" !&e i!e$ n#$e :2.
cin''i!n#$e.
cou!<<2?n?! en!e" *u"c&#e *"ice :2.
cin''**"ice.
cou!<<2?n?! en!e" ellin/ *"ice :2.
cin''*"ice.
cou!<<2?n?! en!e" cu""en! !oc> :2.
CSC-AVINASHI AND CSC-GANAPATHY 40
C++ NOTES
cin''!oc>.
4
+oid $#in01
)
cl"c"01.
(!"e#$ (.
i!e$ i.
c&#" 3i&.
(%o*en02i!e$%d#!2,io::ou!1.
do
)
i%/e!Si!e$01.
(%3"i!e00c&#" 91Ci,iOeo(0i11.
cou!<<2?n?! 3i& !o #dd #no!&e" i!e$2.
cin''3i&.
4
3&ile03i&55PDP1.
(%cloe01.
4
QRITING OBTECT FROM THE FILE
#include<io!"e#$%&'
#include<(!"e#$%&'
#include<io$#ni*%&'
#include<conio%&'
cl# i!e$
)
*"i+#!e:
in! i!no.
CSC-AVINASHI AND CSC-GANAPATHY 41
C++ NOTES
c&#" i!n#$e:1=;.
in! !oc>.
(lo#! **"ice,*"ice.
*u-lic:
+oid &o3Si!e$01.
+oid &e#de"01.
4.
+oid i!e$::&e#de"01
)
cou!<<2i!e$ no i!e$ n#$e **"ice
*"ice !oc>2<<endl.
4
+oid i!e$ ::&o3Si!e$01
)

cou!<<e!30F1<<i!no<<e!301=1<<i!n#$e<<e!30
1=1<<**"ice<<e!301=1<<*"ice<<e!30F1<<!oc
><<endl.
4
+oid $#in01
)
cl"c"01.
(!"e#$ (.
i!e$ i.
c&#" 3i&.
i%&e#de"01.
(%o*en02i!$%d#!2,io::in1.
3&ile0U(%eo(011
)
CSC-AVINASHI AND CSC-GANAPATHY 42
C++ NOTES
i%&e#de"01.
(%"e#d00c&#" 91Ci,iOeo(0i11.
i%&o3Si!e$01.
4
(%cloe01.
/e!c&01.
4
CSC-AVINASHI AND CSC-GANAPATHY 43

Vous aimerez peut-être aussi