C++ Final Notes
C++ Final Notes
egRoiw.kZ xq.k gSaA C++ ds vanj Class dk egRo dks bl izdkj le>k tk ldrk gSa
fd C++ dk igys fu/kkZfjr fd;k xk; uke 'Class ds lkFk C' (C with Classes) j[kk x;k
FkkA C++ esa Class dk iz;ksx lEHkor% C esas Structure dk mUur fl)kUr gSaA
Class iz;ksDrk ifjHkkf"kr Data Type ds fuekZ.k rFkk mls dk;kZfUor djus dk ,d
u;k rjhdk Hkh gSaA C++ tSlk fd ,d C dk gh mUur laLdj.k gSa vr% C ds oLrqr
% izk;% xq.k blesa lekfgr djus dk iz;kl fd;k x;k gSaA C++ C esa ifjHkkf"kr
lHkh lajpukvksa (Structures) dks vuqeksfnr djus ds vykok iz;ksDrk ifjHkkf"kr
(User-defined) Data rFkk iwoZ&fufeZr (built-in) Data ds varj dks cgqr gh de ls de
djus dk iz;kl fd;k djrk gSaA blds vfrfjDr blea Data dh lqj{kk ds n`f"Vdks.k ls
bls ckgjh gLr{ksi ls cpkus ds fy;s fNikus (hiding) dh Hkh lqfo/kk miyC/k gSaA
C++ esa oa'kkuqØe (Inheritance) dk iz;kstu gSa rkfd ,d Data dk izdkj nwljs Data
izdkj ds y{k.kksa dks Hkh mi;ksxh esa yk ldsaA
Class ?kks"k.k blds lnL;ksa (Members) ds izdkj rFkk {ks= (Scope) dks Li"V djrk
gSaA Class Function ifjHkk"kk (Class Function Definitions) Function ds dk;kZUo;u dk
o.kZu djrk gSaA Class ?kks"k.k (Class Declaration) dk lkekU; rjhdk bl izdkj gSa
&
Class Class_name
{
Private :
variable declarations;
function declarations;
Public :
variable declarations;
function declarations;
}
Class ?kks"k.kk (Class Declaration) Struct ?kks"k.k ds leku gksrk gSa rFkk
Key-Board Class ds ckn vkus okyk Class_name dk vewrZ vFkok lkj (Abstract) Data
gksrk gSaA Class dk eq[; Hkkx dks"Bdksa (braces) esa can gksrk gSa rFkk og
lsehdkWyu (:) ds lkFk lekIr gksrk gSa tSlkfd vki mij ds mnkgj.k esa ns[k ldrs
gSaA
lnL; (Members): - Class esa nksi zdkj ds ?kks"k.kk (Declarations) gksrs
gSa & Variables rFkk nwljk Functions rFkk budks ml Class dk lnL; (Members) dgk
tkrk gSaA lnL; izk;% nks oxZ ds gksrs gSa& futh (Private) rFkk lkoZtfud
(Public)A
futh lnL; (Private Member): - oSls lnL; ftudh ?kks"k.kk futh oxZ ds vanj
fd;k gksrk gSa] dsoy class ds vanj ls gh Access fd;s tk ldrs gSaA bl izfØ;k esa
Data dks ckgjh gLr{ksi ls cpk;k tkrk gSa tks fd Object Oriented Programming ds
-1–
eq[; vk/kkjksa eas ,d gSaA Private Key-word dk iz;ksx ,sfPNd gSa D;ksafd Class
ds ;s lnL; By Default futh gksrs gSaA gk¡ ;fn vkius Public yscy fy[kuk NksM+
fn;k rks lHkh lnL; futh (Private) le>s tk;saxsaA
Data Members: - Class ds vanj ?kksf"kr fd;s x;s Variables Data Members
dgykrs gSaA
Member Functions: - Class ds vanj ?kksf"kr fd;s x;s Member Function
dgykrs gSaA Members Function Private data members rFkk Private Functions dk iz;ksx
dj ldrs gSaA fdUrq] lkoZtfud lnL; (Function & Data) dks Class ds ckgj ls Access
fd;k tkrk gSaA
Private :
izos'k Variable declaration (data)
izfrcaf/kr function declaration
Public :
izos'k Variable declaration (data)
vuqer function declaration (data)
-2–
public :
void getdata(int a, float r);
void putdata( );
{
cout <<a;
cout << r;
}
};
bl Class esa nks public Function ifjHkkf"kr gSa] getdata( ) vkSj putdata( )A
mYys[kuh; gSa fd Function ds dksM (Code) Hkh class dh ifjHkk"kk esa fy[k fn;s
x;s gSaA blds foijhr ;fn lnL; QaD'ku vkdkj esa cM+s gksrs gSa rks mUgsa
Class dh ifjHkk"kk ds ckgj ifjHkkf"kr djuk pfkg;sA ;|fi bl Function dk
izksVksVkbi class ifjHkk"kk esa fy[kuk vko';d gSaA
Dykl ds ckgj dh ifjHkk"kk (Outside the class definition)
// Function definition outside the class declaration
void commodity : : getdata(int a, float b)
{
number = a;
rate = b;
}
void commodity : : putdata( )
{
cout << number <<"\n";
cout << rate <<"\n";
}
vc ge ,d ,slk izksxzke rS;kj djrs gSa ftlesa Object rS;kj fd;k tk; tks
rkieku dks fMxzh lsfYl;l ls fMxzh QkjsugkbV esa vkSj fMxzh QkjsugkbV ls
fMxzh lsfYl;l esa ifjofrZr djrk gSaA ge tkurs gSa fd ,d Object rS;kj djus ls
iwoZ bl Object ds Class dks ?kksf"kr djuk vko';d gSaA ekuk tempconvt uke dk
class gSaA
//Declaration of Class TEMPCONVT
class tempconvt
{
private :
float c, f;
public :
float c_to_f(float i); //prototype of the function to convert 0C to 0F
float f_to_c(float j); //prototype of the function to convert 0F to 0C
};
;gk¡ c vkSj f Variable Private gSa vSkj c_to_f( ) vkSj f_to_c( ) Function public
gSaA c_to_f( ) Function fMxzh lsfYl;l ls fMxzh QkjusgkbV esa ifjorZu djrk gSa]
tcfd f_to_c( ) Function fMxzh QkjusgkbV ls fMxzh lsfYl;l esa ifjorZu djrk
gSaA ;g Function Member Function dgykrs gSaA vr% lnL; Function dks class ds
ckgj fuEu izdkj ifjHkkf"kr fd;k tk;sxk &
//Declaration of Function c_to_f( )
float tempconvt : : c_to_f(float i)
{
f = 1.8 * i + 32;
return (f);
}
-3–
// declaration fo function f_to_c( )
float temconvt : : f_to_c(float j)
{
c = (j – 32)/1.8;
return (c);
}
-4–
float rate;
public :
void getdata(int n, float r); //?kks"k.kk (declaration)
};
inline void commodity : : getdata(int n, float r) //ifjHkk"kk (definition)
{
number =n;
rate = r;
}
-5–
10 12
Smaller value 10
-6–
cin >> n;
for (i = 0; i <n; i ++)
{
cout << "\n Enter Item code";
cin >> it_coe[i];
cout << "\n Enter No. of items";
cin >> number[i];
cout << "\n Enter cost";
cin >> cost[i];
}
}
void item : : putdata( )
{
for(i = 0; i<n; i++)
{
cout << "\n Item Code =" <<it_code[i];
cout << "\n Number of Items =" << number[i];
cout << "\n Total cost =" << cost[i] * number[i];
}
}
void main( )
{
clrscr( );
item x;
x.getdata( );
x.putdata( );
} //End of Main Function
-7–
vkWCtsDV ds fy;s eseksjh dk vkoaVu
-8–
count : 2
mijksDr Program esa LFkk;h (Static) Variable Counter izkjEHk esa 'kwU;
gksrk gSa tc Object curk gSaA Counter esa ,d o`f) gksrh gSa tc Data ,d Object
esa nks ckj i<+k tk jgk gSa] counter nks ckj o`f) gksrk gSa vkSj D;ksafd
counter dh izfr nksuksa Object ds }kjk lk>k fd;k tkrk gSa] nksuksa vkmViqV
dFku 2 eku dks iznf'kZr djrs gSaA
;gk¡ /;ku nsus ;ksX; ckr ;g gSa fd izR;sd LFkk;h lnL; Data dk izdkj rFkk
{ks= (Scope) class ifjHkk"kk ds ckgj ifjHkkf"kr fd;k tkuk pkfg;sA bldh vko';drk
blfy;s gSa D;ksafd LFkk;h Data lnL; Object ds Hkkx ds :i esa lax`fgr u gksdj
vyx lax`fgr gksrs gSaA LFkk;h MkVk lnL; dks class Variable (Class variables)
Hkh dgrs gSa D;ksa os lh/ks&lh/ks class ls gh tqM+s gksrs gSaA
-9–
run : : showcount( );
run t3;
t3.setcd( );
run : : showcount( );
t1.showcd( );
t2.showcd( );
t3.showcd( );
return ();
}
mijksDr Program esa ;g dFku
Code = ++ counter;
fØ;kfUor gksrk gSa tc setcd( ) Function lfØ; gksrk gSa vkSj counter dk
rRdky eku Code ea tek gksrk gSaA pw¡fd izR;sd Object ds code dh viuh izfr
(Copy) gksrh gSa] code dk eku vf}rh; (Unique) gksrk gSaA
mijksDr Program dk ifj.kke bl izdkj gksxk &
Count : 2
Count : 3
Object number : 1
Object number : 2
Object number : 3
Class dh bl ?kks"k.kk esa XX ,d Class gSa ftlesa nks Private Member 'a' vkSj 'e'
rFkk Public Member accept function vkSj give Function gSaA XX Class ds }kjk Objects
ds vuqfoU;kl O;Dr fd;s tk ldrs gSa ftlls fofHkUu Objects esa vf/kd ek=k esa
eku laxzfgr fd;s tk ldrs gSaA
xx Y[20];
;gk¡ XX class vuqfoU;kl y dks O;Dr djsxk] ftlls eseksjh esa 20 Data eku
Private Member ds :i esa laxzfgr fd;s tk ldrs gSaA Function ds call djus esa
Objects dks eku fn;s tkrs gSa] tSls &
y[1] .accept( );
;g Object dh izFke eseksjh fLFkfr esa izFke lnL; dk eku accept function
ds }kjk izkIr djrk gSaA blh izdkj eseksjh dh vU; fLFkfr;ksa ds fy;s Object ds
vU; 15 eku Hkh izkIr fd;s tk ldrs gSaA
- 10 –
mnkgj.k 5 % ,d Program fy[kuk ftlesa N la[;k esa fo|kfFkZ;ksa ds
fjdkMZ Objects ds vuqfoU;kl esa v Input fd;s tk;sa vkSj fo|kfFkZ;ksa dh lwph
fuEu izk:i esa Nis &
List of Students
Name Roll No. Grade
... ... ...
... ... ...
... ... ...
... ... ...
Marks Grade
< 200 D
>= 200 < 240 C
>= 240 < 320 B
>= 320 A
- 11 –
void compute_grade( );
void display_data( );
}
void student : : read_data( )
{
gets(name)
fflush(stdin);
cin >> rollno >> marks;
}
void student : : compute_grade;
{
if(marks < 200>
grade = 'D';
else if(marks <240)
grade = 'C';
else if(marks < 320)
grade = 'B';
else
grade = 'A';
}
void student : : display_data( )
{
compute_grade( );
count << end1 << setw(9) << name << setw(7) << rollno. <<setw(5) << grade;
}
void main( )
{
int n;
student stud list[50];
count << "\n Enter The Number of students";
cin >> n;
for(int i = 0; i<n; i ++)
stud_list[i] .read_data( );
clrscr( );
cout << "\n NAME ROLL NO GRADE";
for(i = 0; i < n; i++)
stud_list[i] .display_data( );
} //End of main function
eku }kjk isz"k.k (Pass By value) – bl fof/k esa Function dks Object dh ,d
izfr (Copy) izf"kr fd;k tkrk gSa vr% QaD'ku ds vanj Object esa fd;s x;s
la'kks/ku dk izHkko ml ewy Object ij ugha iM+rk gSa ftldh Copy Pass dh x;hA
- 12 –
fjÝsUl }kjk izs"k.k (Pass by reference) – blesa Object dk irk (Address)
Function dks izsf"kr fd;k tkrk gSaA QyLo:i] Function tks Hkh dk;Z ml Object ij
djrk gSa mldk izHkko mlds ewy Object ij lh/ks&lkh/ks iM+rk gSa rFkk lkFk
gh og Hkh la'kksf/kr gks tkrk gSaA fjÝsUl }kjk izs"k.k T;knk l{ki gksrk gSa
D;ksafd blesa iwjs Object dks izf"kr djus dh ctk; dsoy mldk irk gh izsf"kr
gksrk gSaA
- 13 –
for(i = 0; i < m; i ++)
{
cout << "\n";
for(j =0; j < n; j ++)
cout << mat[i][j] <<" ";
}
}
int get_norm(mat_op X); // Prototype Declaration
void main( )
{
int norm_of_mat;
mat_op mat_obj;
// Read Matrix
mat_obj . read_mat( );
// Send Mat_obj By Value to get_norm function
norm_of_mat = get_norm(mat_obj);
mat_obj . display_mat( );
cout << "\n The Norm of the Matrix Is \n" << norm_of_mat;
getch( );
}
// Function that Receives And object
int get_norm(mat_op x)
{
int res;
res = x . compute_norm( );
return(res);
}
UNIT – I
INTRODUCTION: -
(i) bls AT&T Bell laboratories esa cuk;k x;k FkkA
(ii) bls 1980 ds n'kd esa Bjarnc stroustrup }kjk cuk;k x;k FkkA
(iii) ;g ,d iqjkuh Object oriented language 'Simula 67' ij vk/kkfjr FkhA
(iv) C++ dh lQyrk dk jkt mldh Object oriented technology gSa ftls real world
}kjk vklkuh ls viuk;k tk ldrk gSaA
- 14 –
(1) ;g xksy gksrh gSaA (2) bldk colour orange gksrk gSa vkfnA
rFkk bldk behaviour: - (i) ;g jlhyh gksrh gSa (ii) ;g taste esa [kV~Vh ehBh gksrh
gSaA Object Oriented Programming ds vUrxZr Object mu entity dks iznf'kZr djrs
gSa ftlds }kjk data o functions dks store fd;k tkrk gSaA
bu lHkh objects dks ,d special entity esa group fd;k tkrk gSa ftls class dgrs
gSaA vr% 'Class' Objects dk group gSa tks Common Properties rFkk Relationships dks
Share djrh gSaA example: - 'CAR' ,d Object ugha cfYd ,d class gSaA 'Opel Astra' ,d
Object gSa tks 'Car' Class ds }kjk define fd;k x;k gSaA 'CAR' ,d vU; Class
'Automobiles' dh subclass gSa tks iqu% 'Vechicles' dh ,d sub class gSaA
vr% Object Oriented Programming, implementation dk ,d Method gSa ftlds }kjk
Programs dks Organize fd;k tkrk gSaA tSls] Collection of objects dks define djuk
gSa tks Class ds instance dks iznf'kZr djrk gSaA
Features of OOP's: - or C++: -
OOP's ,d approach gSa ftlds }kjk dqN Concepts dks define fd;k tkrk gSa ftlls vyx
vyx Programming Problems dks define fd;k tkrk gSaA tks fuEu gSa% &
(1) Data Abstraction (2) Data Encapsulation
(3) Modularity (4) Inheritance
(5) Polymorphism (6) Objects
(7) Classes.
- 15 –
Example: - ekuk ,d Program music system dks iznf'kZr djrk gSaA Music
System esa speakers, cassette-player, record player, cd-player, tuner vkfn dks 'kkfey
fd;k tkrk gSaA vr% Program dks vyx&vyx Modules esa iznf'kZr fd;k tkrk gSa
ftlesa gj Module Speaker, record-player vkfn dks iznf'kZr fd;k tkrk gSaA gj Module
vius vki esa Complete unit gSa vkSj bUgsa rc bdV~Bk fd;k tkrk gSa tc ,d
Single goal dks iwjk djuk gksA
(4) Inheritance: - Inheritance ds vUrxZr ,d Class dh Properties dks nwljh class
}kjk access fd;k tkrk gSaA ge ,d class 'Human' ls dqN Properties dks 'inherit'
djrs gSa tSls & Speak, breath, eat, drink vkfnA ysfdu ;s Properties lHkh
Humans ds fy;s Unique ugha gksrhA Human ds }kjk bu Properties dks Class
"Mammal' ls Inherit fd;k tkrk gSaA Inheritance dks ifjHkkf"kr djus ds ,d
Example fuEu gSa% &
Vehicles
- 16 –
request djrk gSaA gj Object data rFkk data ij gksus okys Operation dks
Perform djrk gSaA example: -
Object : Emp
Data :
name
Date of joining
salary
functions:
calc_salary
display
BENEFITS OF OOP
OOP's dks iz;ksx esa ysus ls program designer o user nksuks dks cgqr Qk;ns
gSaA eq[; ykHk% &
1) Inheritance ds }kjk redundant (duplicate) code dks gVk;k tkrk gSaA
2) Programs dks modules ds :i esa cuk;k tk ldrk gSa ftlls development esa le;
de yxrk gSa rFkk Productivity Hkh high gksrh gSaA
3) Data hiding ds }kjk Program Code dks secure j[kk tk ldrk gSaA
4) Objects ds vk/kkj ij iwjs Project dks vklkuh ls NksVs&NksVs Parts esa
divide fd;k tk ldrk gSaA
5) Object Oriented System ds }kjk NksVs Programs dks vklkuh ls cM+s
Programs esa cnyk tk ldrk gSaA
6) software dh complexity (tfVyrk) dks vklkuh ls Handle fd;k tkrk gSaA
Fundamental ;k Basic data types fdlh vU; data type ij fuHkZj ugha gksrh gSaA
1) int Data Type: -
(i) Integers dks whole number store djus ds fy;s iz;ksx esa fy;k tkrk gSa
ftudk dksbZ Fractional ;k decimal part ugha gksrk gSaA tSls% & 539, -
1970 vkfn integers gSa ijUrq 5.39, 5/2 vkfn dks integers ugha dgk tkrk
gSaA
(ii) C++ esa Integers dks 'int' data type }kjk iznf'kZr djrs gSaA
(iii) Int memory esa 2 Byte Space dks mi;ksx esa ysrk gSaA
(iv) C++ esa rhu izdkj ds integers dks define fd;k x;k gSa% &
1) Short 2) int 3) long
(1) Short integer de ls de 2 bytes ysrk gSaA
(2) int short ds cjkcj ;k mlls T;knk gksxk ijUrq 2 bytes Memory gh ysxkA
(3) Long integer de ls de 4 Bytes ysrk gSaA
- 17 –
2) Char Data Type: -
(i) Characters dks character set ds }kjk define fd;k tkrk gSaA
(ii) Characters dks define djus ds fy;s 'Char' Keyword Use esa fy;k tkrk gSaA
(iii) eq[;r% Character memory esa integer equivalent code ds :i esa Store jgrs
gSaA
(iv) char type dks izk;% integer type Hkh dgk tkrk gSa] D;ksafd blds }kjk
letters, symbols vkfn lHkh dks store fd;k tk ldrk gSaA
(v) Characters memory esa '1 Byte' space ysrs gSaA
(vi) Characters dks fuEu Hkkxksa esa ckaVk x;k gSa% 7
Precision Digit
double 8Byte 1.7x10-308 to 1.7x10308 15
Precision Digit
-4932 4932
Long double 10Bytes 3.4x10 to 3.4x10 19
5) Void Data Type: -
(i) void ds }kjk Empty Set of values dks Specify fd;k tkrk gSaA
(ii) bls function dh return type ds :i esa mi;ksx esa fy;k tkrk gSaa
(iii) void type ds Object dks define ugha fd;k tkr ldrkA
1) Arrays: -
- 18 –
(i) Same data type dh cgqr lh Values dks ,d lkFk j[kdj mUgsa ,d specific
uke ns fn;k tkrk gSaA bl izdkj ds concept dks arrays dgrs gSaA
(ii) Memory esa ;s values yxkrkj ,d ds ckn ,d Store jgrh gSaA
(iii) Array define djus ds fy;s [ ] Brackets esa array size dks define fd;k tkrk
gSaA
(iv) Array 1-Diemonsional, 2-Diemonsional ;k ;k Multi Diemensional Hkh gks
ldrs gSaA
2) Functions: - Function Program ds Modularity Concept dks ifjHkkf"kr djrs gSaA c++
esa functions dks Class ds ckgj o vUnj nksuks txg define fd;k tk ldrk gSaA
3) Pointers: -
(i) Pointer ,d Variable gSa ftls Memory address store djus ds fy;s mi;ksx esa
fy;k tkrk gSaA
(ii) Pointers dks define djus ds fy;s * sign dks mi;ksx esa fy;k tkrk gSaA
lkFk gh mldh data type dks define djrs gSaA
4) References: -
(i) Reference, object dk gh nwljk uke gSaA Reference ds }kjk igys define
fd;s x;s variables ds aliases dks create fd;k tkrk gSaA
(ii) Reference variable define djus ds fy;s & (ampersand) sign dks mi;ksx esa
ysrs gSaA
(iii) Reference variable dks define djus ds fy;s fuEu syntax dks mi;ksx esa
fy;ks tkrk gSa% & type & ref-var = var_name;
(iv) ;fn sum dks total dk Reference variable declare fd;k tkrk gSa rks sum rFkk
total nksuks ,d gh Variable Value dks iznf'kZr djrs gSaA
int total;
int & sum = total; //reference variable
total = 100;
5) Constants: -
(i) Program execution ds le; ftu variable dh value change ugha gkrh mUgsa
constants dgk tkrk gSaA
(ii) Constants dks define djus ds fy;s Const keyword dks mi;ksx esa fy;k
tkrk gsaA
(iii) Constants dks declaration ds le; gh Initialise fd;k tkuk pkfg;sA
(iv) Constants dks fuEu izdkj define fd;k tkrk gSa% &
Syntax: - const type name = value;
cont int pi = 3; // example
- 19 –
1) Class: - Class ds }kjk same Type ds Object ds group dks iznf'kZr fd;k tkrk gSaA
ftl izdkj fdlh Hkh Variable dks define djrs le; mldh data type vko';d gksrh gSa
mlh izdkj Class ds fy;s objects vko';d gSaA
(i) Class dks cukus ds fy;s class Keyword dks mi;ksx esa fy;k tkrk gSaA
Syntax: - Class class name
I
variable declaration
function declaration
public:
variable declaration
function declaration
};
(ii) Class ds vUnj define fd;s x;s variables o functions private gksrs gSa tc rd
fd public access specifier dks mi;ksx esa u fy;k tk,A
(iii) class dks close djus ds fy;s braces ds ckn (;) semi colon dks mi;ksx esa
fy;k tkrk gSaA
2) Structure: - Structure vyx&vyx data type ds variables dk leqg gSa ftls ,d uke ns
fn;k tkrk gSaA tSls student Roll no, name, class, marks, grade vkfn dk collection gSaA
os vriables ftUgsa structure cukus ds fy;s mi;ksx esa fy;k tkrk gSaa elements of
structure dgykrs gSaA blds fy;s struct keyword dks mi;ksx esa fy;k tkrk gSaA
struct student
{
int rollno;
char name [30];
int class;
float marks;
char grade;
};
3) Union: - Union og Memory location gSa ftls ,d ls vf/kd vyx&vyx variables }kjk
Share fd;k tkrk gSaA Union dks Hkh structure dh rjg gh define fd;k tkrk gSaA
blds fy;s union keyword dks mi;ksx esa fy;k trk gSaAi bls Hkh Object }kjk Access
fd;k tkrk gSaA
Union share
{ int i; BYTE 0 BYTE 1
char ch;
}; union share cnvt; ch
4) Enumeration: - integer constants dks const ds vykok ,d vksj rjhds ls define fd;k
tkrk gSa ftUgsa enumeration dgrs gSaA blds fy;s enum keyword dks mi;ksx esa
fy;k tkrk gSaa
enum { start, stop, god};
blds }kjk rhu integer constants dks define fd;k tkrk gSa ftUgsa enumerators dgrs
gSaA By default enumerators dh value 0 ls start gksrh gSaa bls bl izdkj Hkh define
fd;k tkrk gSa% &
const int start = 0;
- 20 –
const int stop = 1;
const int god = 2;
OPERATORS
1) I/O Operators: - User }kjk terminal ls input fy;k tkrk gSaA ftls standard input dgk
tkrk gSa tks igys ls defined iostream ds cin ls fy;k tkrk gSaA standard output }kjk
terminal ij output fn;k tkrk gSa ftls cout }kjk define fd;k tkrk gSaA
Output Operators: - insertion operator ("<<")
input Operators: - extraction operator(">>")
5) Logical Operators: -
(i) Logical AND (&&)
(ii) Logical OR (II)
(iii) Logical Not
- 21 –
2) Class Function definitions
Class declaration ds }kjk mldh type o Scope dks ifjHkkf"kr fd;k tkrk gSaA
class class_name
{
private;
variable declaration;
function declaration;
public;
variable declaration;
function declaration;
};
tc Variables o Function dks class esa declare fd;k tkrk gSa rks mUgsa class
members dgk tkrk gSaA bl class members dks eq[;r% nks section es define fd;k
tkrk gSaA
1) Private
2) Public
blds fy;s Public rFkk Private Keywords dks mi;ksx esa fy;k tkrk gSaA bu
Keywords ds ihNs (colon) dks mi;ksx esa ysrs gSaA
os Variables ftUgsa class ds vUnj define fd;k tkrk gSaA data members
dgykrs gSa rFkk os functions ftUgsa Class esa define fd;k tkrk gSaA Member
functions dgykrs gSaA dsoy member functions }kjk gh private data members, private
functions dks access fd;k tk ldrk gSaA class ds public members dks class ds ckgj
access fd;k tk ldrk gSaA
Example of Class: -
class my
{ int x;
int y;
public
void getdata ( ); //function declaration
void put data ( );
};
mijksDr class ds }kjk nks data members o nks members functions dks define fd;k x;k
gSaA By default nksuks data member private gSa rFkk Member functions dks public
define fd;k x;k gSaA mijksDr functions dks declare fd;k x;k gSa uk fd define.
tc ,d ckj class dks declare dj fn;k tkrk gSa rks user }kjk class cgqr ls
variables dks define fd;k tk ldrk gSaA
Syntax: - class_name object_name;
my ob1; //object of my class;
* class ds object dks fuEu izdkj ls Hkh define fd;k tk ldrk gSa% &
class my
{
--------------
--------------
} 01, 02, 03; // objects with class declaration
Class ds Private data dks class ds Member function }kjk gh access fd;k tk ldrk gSaA
main ( ) ds vUrxZr class ds Member functions dks Object ds lkFk call fd;k tkrk gSa
%&
- 22 –
main ( ) esa fuEu statements dks ugha fy[kk tk ldrk gSa% &
(i) getdata ( ); //illegal
(ii) 01.x = 10; //illegal
(i) Outside the class definition: - Member functions dks class esa declare djds class ds
ckgj Hkh define fd;k tk ldrk gSaA
Syntax: - return_type classname : : function name (arguments)
{
//function body:
}
example: -
# include <iostream.h>
# include <conio.h>
class student
{ int roll, marks;
public:
void getdata( ); //function declaration
void putdata( );
};
void student : : getdata ( ) //function definition
{ cout <<"\n Enter the student roll no.";
cin >> roll;
cout << "\n Enter the student marks";
cin>> marks;
}
void student : : putdata( )
{ cout <<"\n The student roll number is "<<roll;
cout <<"\n The student marks in" << marks;
}
void main( )
{ student s1;
s1. getdata( );
s1. putdata( );
}
mijksDr nksuks member function ds }kjk fdlh value dks return ugha fd;k x;k gSA
vr% budh return type void gksxhA
Member functions dh dqN fo'ks"krk,sa fuEu gS% &
1) cgqr lh vyx&vyx classes same function name dks mi;ksx esa ys ldrh gSa
D;ksafd gj function ds lkFk mldk class label yxk gksrk gSaA
2) Class ds Private Data dks Member functions }kjk Access fd;k tk ldrk gSaA
3) ,d Member function nwljs member function dks vklkuh ls directly call dj ldrs
gSaA blds fy;s dot operator dh vko';drk ugha gksrh gSaA
- 23 –
Inside The Class: - Member functions dks class ds vUnj Hkh define fd;k tk ldrk gSa
%&
Example: - class student
{ int roll, marks;
public: void getdata( )
{cout<, "Enter the roll no";
cin>> roll;
cout <<"/nEnter the marks";
cin>>marks;
}
INLINE FUNCTION
Inline functions ds }kjk Program execution dh speed dks c<+k;k tkrk gSaA Normal
function o Inline function dh Coding same gksrh gSa ijUrq inline function dh definition
inline keyword ls 'kq: gksrh gSaA lkFk gh nksuks functions dk compilation process
Hkh vyx&vyx gksrk gSaA
Executable Program dks Computer memory esa Load djus ds ckn instruction
dks one by one execute fd;k tkrk gSaA tc function call instruction occur gksrk gSa]
rks Program tYnh ls function call statement ds ckn okyh instruction address dks Store
dj ysrk gSa rFkk ckn esa ml function dks memory esa Load dj function code dks
execute djrk gSa rFkk function dh return value dks store dk iqu% save dh xbZ
instruction ij igq¡p tkrk gSaA
Square function esa gksus okyk Overhead: -
Example: -
Memory loaded Code 1) function call ds ckn okyh instruction dh Save
1010 int a = 4, b =7 djukA vr% 1018 address dks Save.
1012 int c = a+b,d; 2) C dh Value dks stock esa MkyukA
1015 d = square (c); 3) Memory Location 2022 ij Jump djukA
1018 cout <<d; 4) mudh Instructions dks execute djukA
: : 5) Value 121 dks d esa store djukA
: : 6) iqu% 1018 ij tkukA
: :
2022 int square (int i)
{ return i*i; }
Inline Function ls bl overhead ls cpk tk ldrk gSa D;ksafd inline ds lkFk fy[kk x;k
Code execute djrs le; compiler function call statement dks function code esa ifjofrZr dj
nsrk gSaa vr% execution ds fy;s ckj&ckj Jump dh vko';drk ugha gksrhA
Inline function normal function ls T;knk fast run gksrs gSa ijUrq bldk lcls
cM+k uqdlku ;g gSa fd ftruh ckj inline function dks call fd;k tk,xk mruh ckj
mldh copy cusxhA
Inline function definition dks lHkh functions ds mij fy[kuk pkfg;s tks mls call dj jgs
gksA
Inline functions fuEu ifjfLFkfr;ksa esa dk;Z ugha djrs% &
1) os function tks loop, switch ;k goto statement dks mi;ksx esa ys jgs gSaA
2) os function ftuesa static variable dks mi;ksx esa fy;k x;k gksA
3) ;fn function recursive gksA
Example of Inline function: -
# include <iostream.h>
inline int square (int x)
- 24 –
{ return (x*x); }
void main( )
{
int a = 5;
cout <<square (a) <<"\n";
}
Block2 dks Block1 esa define fd;k x;k gSaa ;gk¡ inner block esa defined x dh Value
ds }kjk Outer block dh X dh Value dks Hide dj fn;k x;k gSaA C ds vUrxZr global
variable dks inner block }kjk access ugha fd;k tk ldrk Fkk ijUrq C++ ds }kjk bl
Problem dks solve dj fn;k x;k gSaA blds fy;s :: Scope Resolution Operator dks
mi;ksx esa fy;k tkrk gSaA blds }kjk Global variable dks access fd;k tk ldrk gSaA
Syntax: - :: variable name
example: - int a = 10;
void main( )
{ clrscr( );
int a = 15;
cout << "main( )" << "\n";
cout << "a =" <<a<< "\n"; //local a printed
cout <<"::a =" << :: a<<"\n"; //global a printed
//Inner Block
- 25 –
{
int a = 25; //local to inner block
cout <<"/n Inner Block";
cout <<"a =" <<a<<"\n";
cout <<"::a=" <<"\n"; \\global a
}
}
Note: - Class ds member function dks class ds ckgj access djus ds fy;s Hkh scope
Resolution Operator dks mi;ksx esa fy;k tkrk gSaA
USE OF STATIC
Class ds members (data o functions) dks static declare fd;k tk ldrk gSaA vr% static
data members Hkh define fd;s tk ldrs gSa o static member function dks Hkh define
fd;k tk ldrk gSaA
1) Static Data Member or Static Variable: - Static data member class ds global
variable dh rjg gh gksrs gSa ;g variable lHkh Objects (Same class ds) ds }kjk
access fd;s tk ldrs gSaA
Static member normal class variable ls dqN fHkUu gksrs gSa% &
1) class ds lHkh Objects ds }kjk static variable dh ,d gh copy dks share fd;k tkrk
gSaA
2) ;s flQZ class rd gh mi;ksx esa fy;s tk ldrs gSa ijUrq budk lifetime iwjs
Program rd jgrk gSaA
fdlh Hkh data member dks nks Rules dh vko';drk gksrh gSa% &
(i) bUgsa class definition esa declare djukA
(ii) budh definition dks class ds ckgj djukA
(i) fdlh Hkh static data member dks class esa declare djus ds fy;s static keyword dks
mi;ksx esa ysrs gSaA
Static keyword dks mi;ksx esa ysrs gSaA
Syntax: - static data type variable_name;
class x
{
static int count; //declaration in the class
};
(ii) mijksDr class esa count static variable dks declare fd;k x;k gSa rFkk ijUrq bldh
definition dks class ds ckgj define fd;k tk,xkA
syntax: - return_type class name : : variable_name;
example: - class x
{
static int count;
};
int x : : count; //definition of static member
Object 2
Object 1 Object 3
count
- 26 –
example: -
class stat
{ int roll,marks;
static int count;
public:
void getdata (int i, int j)
{
roll = i;
marks = j;
count ++;
}
void putdata( )
{
cout << end<< "rollno=" <<roll;
cout << end <<"marks=" <<marks;
cout <<end <<"Count=" <<count;
}
};
int stat :: count; //definition of count outside the class
void main( )
{ stat 01;
01.getdata (23, 78);
01. putdata( );
01. getdata (1, 92);
01. putdata( );
}
2) Static Member Function: - os Member functions tks flQZ class ds static data members
dks access djrs gSa] mUgsa static member function dgk tkrk gSaA blds fy;s
function dks static declare fd;k tkrk gsaa ftldk declaration o definition fuEu gSa% &
class x
{ static int count;
static void show( )
{ cout << count <<end1;}
};
int x:: count;
Static member function normal function ls dqN vyx gksrk gSa blds fy;s ftu Rules dks
define fd;k tkrk gSa os fuEu gSa% &
1) Static Member functions ds }kjk same class ds static data members dks access
djrs gSaA
2) static Member function dks class ds Objects }kjk ugh cfYd class ds name ls
invoke fd;k tkrk gSaA
Syntax: - class_name :: function_name
static function dks call djus ds fy;s% &
x :: show( );
# Program: - FOR STATIC MEMBER FUNCTION
class x
{
int code, price;
static int count; //static data member
public:
- 27 –
void getdata (int i, intj)
{
code = i;
price = j;
++count;
}
void show ( )
{
cout <,end1<<"Code="<< code;
cout <<end1<<"price=" <<price;
}
static void display ( ) //static member function
{
cout <<"count =" count <<"\n";
}
};
int x :: count = 0;
void main( )
{
x o1, o2;
clrscr( );
o1.getdata (101, 25);
o2.getdata (105, 30);
x :: display ( );
x o3;
o3. getdata (200, 50);
x :: display ( );
o1.show ( );
o2. show ( );
o3. show ( );
}
Class ds Member function }kjk Normal o Static nksuks Members dks access fd;k tk
ldrk gSa tcfd static member function class ds static variable dks access djrk gSaA
FRIEND FUNCTION
encapsulation o data hiding dk concept ;g crkrk gSa fd Non member function ds }kjk
class ds Private o Protected data members dks access ugha fd;k tk ldrkA ij
dHkh&dHkh Private data members dks non member function }kjk access fd;k tkrk
gSa blds fy;s friend function dks mi;ksx esa ysrs gSaA Friend function ,d non
member function gSa ftls class ds private data members o Protected data member dks
access djus dh Permission gksrh gSaA
fdlh Hkh Non Member function dks class dk friend cukus ds fy;s class definition ds
vkxs friend keyword dks mi;ksx esa fy;k tkrk gSaA ftlesa class dk declaration o
definition 'kkfey gSaA
Example: - Class sample
{ private ;
public;
friend void check ( ); //declaration included
;
};
- 28 –
mijksDr function definition ds le; friend keyword dks mi;ksx esa ugha fy;k tk,xkA
friend function ls lacaf/kr dqN egRoiw.kZ Rules: -
1) fdlh function dks ,d ls T;knk class dk friend cuk;k tk ldrk gSaA
2) bl function dk class esa dksbZ scope ugha gksrk cfYd ;g viuh Original
declaration o definition ij fuHkZj gksrk gSaA
3) blds fy;s class ds object dh vko';drk ugha gksrh cfyd bls normal function
}kjk invoke fd;k tkrk gSaA
4) ;g class dk member function ugha gSaA vr% ;g class ds members dks directly
access ugha dj ldrkA vr% blds fy;s class ds Object name ds lkFk Dot(.)
Operator dks mi;ksx esa fy;k tkrk gSaA
5) bls class esa dgh Hkh declare fd;k tk ldrk gSaA
6) Friend function arguments ds :i esa class object dks ysrk gSaA
//friend definition
float average (ABC a)
{ return float (a.x + a.y)/2.0;}
void main( )
{ ABC ob1;
clrscr( );
ob1. getdata( );
float avg.;
avg = average (ob1); //object passed to the average( )
cout<< "average="<<avg<<"\n" //and return value stored in avg.
}
,d class ds Member function dks nwljh class dk friend function Hkh cuk;k tk ldrk
gSaA
Example: -
Class a
{:
void fc_a( ); //member function of A
:
};
class B
{:
friend void A :: fc_A( ); //friend declaration
:
- 29 –
};
blh izdkj ,d class dks nwljh class ds friend class Hkh declare fd;k tk ldrk gSaA
Class A
{ int x,y;
public:
void getdata( )
{
}
float fc( )
{
}
};
Class B
{:
friend class A; //all member function of class A
;
};
FRIEND AS BRIDGE
tc fdlh function dks nks vyx&vyx class ds Objects ij Operation Perform djuk gks rks
mls nksuks classes dk firend cuk fn;k tkrk gSaA
Program: - friend function as Bridges
class xyz;
class ABC
{ int x,y;
public:
void getdata( )
{ x =3;
y = 7;
}
friend int com friend (ABC, XYZ);
};
class XYZ
{ int x, y;
public:
void getdata ( )
{ x=5;
y = 10;
}
friend int com friend (ABC, XYZ);
};
int com_friend (ABC a, XYZ b) //friend function definition
{ return (a.x * b.x + a.y * b.y);}
void main( )
{
ABC ob1;
XYZ ob2;
clrscr( );
ob1. getdata ( );
- 30 –
ob2. getdata( );
cout << com_friend (ob1, ob2); //using the friend function
}
tc nks class dk Common friend cuk;k tkrk gSa rks nwljh class dks igys declare
djuk vko';d gSaA blhfy;s class XYZ dks ABC ls igys declare fd;k tkrk gSaA
RETURNING OBJECTS
fdlh Hkh function }kjk Objects dks as a arguments fy;k gh ugha tkrk cfYd os
Objects dks return Hkh djrs gSaA
Program: - Complex Number
class complex
{ int x,y;
public;
void getdata( )
{
count << "\n Enter the real part";
cin>> x;
cout <<"\n Enter the imginary part";
cin>>y;
}
void display Complex c1
{
cout << c1.x <<"+i" <<c1.y <<end1;
}
friend complex add (complex, complex);
};
int main( )
{
complex A, B,C;
A. getdata( );
B. getdata( );
C = add (A,B);
cout <<"a=";
A. display (A);
cout << "B=";
B. display(B);
cout << "C=";
C. display (c);
reutrn (0);
}
- 31 –
UNIT – II
CONSTRUCTORS AND DESTRUCTORS
Constructors: - C++ ds eq[; Features data abstraction, Encapsulation, Data hiding,
Inheritance rFkk Polymorphism vkfn lHkh dks ,d lkFk class esa Implement fd;k tkrk
gSa ij class Definition ds }kjk flQZ Data type dks Create fd;k tkrk gSaA
Class Type ds Objects dks vyx ls Create o Initialize fd;k tkrk gSaA
Constructors o destructors dqN special member function gSa ftlds }kjk Class ds Object
ds lkFk class dks Initialize o Dispose (Delete) fd;k tkrk gSaA
Constructor Class dk Member Function gSa tks Class ds Object ds lkFk Automatic Call
gksrk gSaA Constructor dk uke o class dk uke Same gksrk gSa rFkk Constructor
dk eq[; dk;Z Class dh values dks Objects ds }kjk Initialize djuk gSaA
NEED FOR CONSTRUCTORS: - C++ esa array ;k Structure dks declaration ds le; gh
initialize fd;k tkrk gSa blds fy;s fuEu code dks mi;ksx esa ysrs gSa% &
struct student
{
int rollno;
int marks;
};
int main( )
{
student s1 = {0, 0};
int a[5] = {1,2,3,4,5};
}
ysfdu bl initialization dks Class ds lkFk mi;ksx esa ugha fy;k tk ldrk gSaA
D;kasfd Class Members ds fy;s Access Labels dh vko';drk gksrh gSaA bUgsa
Outside the class access ugha fd;k tk ldrkA vr% fuEu code invalid gSa% &
Class student
{
private : int rollno;
int marks;
public:
};
int main( )
{
student s1 = {0,0}; //illegal;
}
Private data members dks Non Member function }kjk access ugha fd;k tk ldrk gSaA
blds fy, ,d Solution Provide fd;k x;k gSa% &
class student
{
private : int rollno;
int marks;
public : void init( )
{
rollno = 0;
marks = 0;
}
.......
};
int main( )
- 32 –
{ student s1; //create on object
s1.init( ); //initialize it
}
mijksDr mnkgj.k esa init( ) function ds }kjk values dks initialize fd;k x;k gSa]
ysfdu Programmer dks bls explicitly invoke djuk iM+rk gSaA vU; 'kCnksa esa
initialization dh responsibility programmer ij gksrh gSaA ;fn Programmer }kjk init( )
dks invoke ugha fd;k tk, rks values esa garbage initialization gks tk,xkA
vr% bl Problem dks nwj djus ds fy;s initialization dh responsibility dks Programmer
ds ctk; Compiler dks ns fn;k tkrk gSa D;ksafd Compiler gh tkurk gSa fd dc
Objects dks Create fd;k tk,xkA gj le; tc Object dks Create fd;k tkrk gSaA Compiler
Automatically initialization function dks invoke dj values dks initialize dj nsrk gSaA ;g
Compiler rHkh dj ldrk gSa tc initialization function dk uke o class dk uke same
gksA
Example: -
Class x
{ int i;
x( )
{
i = 0;
j = 0;
} //Constructor in private section
- 33 –
public :
int j;
void getval( )
{
cin>>i>>j;
}
void print( )
{
cout << "i=" <<i<< "j=" <<j;
}
void check( );
friend void abc( );
};
void x :: check( ) //Constructor is used here.
{ x o1;
:
}
void abc( )
{ x o2; // Constructor is used here
:
}
int main( )
{ x o3; //Constructor is not used here
} //because main( ) is non member function
**eq[;r% Constructors dks Public Section esa gh Define fd;k tkrk gSaA
DEFAULT CONSTRUCTORS
os Constructors tks fdlh Parameter dks Accept ugha djrs mUgsa Default Constructor
dgk tkrk gSaA mijksDr Program esa x( ) Constructor default Constructor gSaA
Default Constructor dks Call djrs le; Object mlh rjg Create fd;s tkrs gSa tSls fdlh
vU; Data type ds Variable dks Create djuk gksA tSls% &
x o1;
bl Object o1 ds }kjk Class ds Default Constructor dks Call fd;k x;k gSaA ;fn Class
esa dksbZ Constructor define ugha fd;k x;k gSa rks Compiler }kjk Class dks
default constructor supply fd;k tkrk gSa tks Argument ugha ysrk gSaA
Example: -
Class A
{
int i;
public: void getdata( );
void output( );
:
};
A o1; //use default constructor for creating 01
Default Constructor ds }kjk data members dks dummy values ls initialize fd;k tk ldrk
gSaA tc Constructor dks argument ds lkFk declare fd;k tkrk gSa rks default
constructor hide gks tkrk gSaA blds ckn default constructor dks Invoke ugha fd;k tk
ldrkA
- 34 –
CONSTRUCTOR WITH DEFAULT ARGUMENTS
fdlh vU; function dh rjg Constructor dks Hkh Default Arguments pass fd;k tk ldrs
gSaA
Example: -
class A
{ int i, j;
public:
A(int a =0, int b =10); //constructor declaration
: //with default arguments
};
A :: A (int a, int b) //constructor definition
{ i = a;
j = b;
}
void main( )
{ A o1 (2,3);
A o2; //it takes default arguments i = 0; j=10;
vr% Default Arguments okys Constructor fcYdqy Default Constructor dh rjg gh dk;Z
djrs gSaA
PARAMETERIZED CONSTRUCTORS
ge tkurs gSa fd Constructor Hkh Arguments ysrs gSa bl Constructors dks
Parameterized Constructors dgk tkrk gSaA blds }kjk vyx&vyx Objects ls different
data elements dks initialize fd;k tkrk gSaA mijksDr mnkgj.k }kjk Parameterized
Constructor dh definition dks ifjHkkf"kr fd;k x;k gSa% &
class ABC
{
int i;
public:
float j;
ABC (int a, float b) //Parameterized Constructor
{ i = a;
j = b;
}
:
};
Class ds Parameterized Constructor ds lkFk Initial values dks arguments ds :i esa Pass
djuk vko';d gSaA ugha rks Compiler Error show djrk gSa% & ABC o1 //invalid
Parameterized Constructor ds lkFk Initial Values dks Object Creation ds lkFk Pass fd;k
tkuk pkfg;sA Parameters dks nks izdkj ls Pass fd;k tk ldrk gSa% &
1) Constructor dks Implicitly Call djukA
2) Constructor dks Explicitly Call djukA
1) Constructor ds Implicit Call esa mlds uke dks Statement esa Mention ugha fd;k
tkrk flQZ Initial value dks Pass dj fn;k tkrk gSaA
tSls% & ABC ob1 (2,3); //implicit call
2) Explicit Constructor Call ds le; User }kjk Explicitly Name fn;k tkrk gSa o Values
dks initialize fd;k tkrk gSaA tSls% &
ABC ob1 = ABC (3, 4.5); //explicit call
- 35 –
Constructor ds explicit call ds le; Object temporarily create gksrk gSaA ;g Object rc rd
mi;ksx fy;k tkrk gSaA tc rd Program bls mi;ksx esa ys jgk gSa ckn esa ;g
Object Remove dj fn;k tkrk gSaA Temporary instance dk dksbZ uke ugha gksrkA
Example: -
class sample
{ int i, j;
public;
sample (int a, int b)
{ i = a;
j =b;
}
void output( )
{ cout <<i<<j<<"\n";}
:
};
void main( )
{ sample s1 (2,5);
s1. output( );
sample (4,9) .output( ); //Data values that are
// temporary created
}
COPY CONSTRUCTOR
Compiler }kjk Copy Constructor dks rc mi;ksx esa fy;k tkrk gSa tc ,d Class ds
Object Reference dks mlh Class ds nwljs Object esa copy djuk gks ;k ,d Object dh
Values dks nwljs Object esa Pass djuk gksA
Example: -
sample s1; //default constructor used
sample s2 = s1; //copy constructor used
mijksDr mnkgj.k esa nwljs Statement esa Compiler s1 dh Copy s2 esa dj
nsxkA ;fn Program esa Copy Constructor dks define ugha fd;k x;k gSa] rks
Compiler Automatically mls Create dj nsxk vkSj ;s Public gksxkA
User }kjk Lo;a dk Copy Constructor Hkh define fd;k tk ldrk gSaA Copy Constructor
}kjk Argument ds :i esa Same Class ds Object dk reference fy;k tkrk gSaa
Example: -
class sample
{ int i, j;
public:
sample (int a, int b) //constructor
{
i =a; j = b;
}
sample (sample &s) //copy constructor
{
j = s. j;
i = s. i;
}
void output( )
{
cout <<"i =" << i <<"j=" << "\n";
:
- 36 –
}
};
mijksDr Class Definition esa nks constructors dks mi;ksx esa fy;k x;k gSa% &
1) Parameterized Constructor
2) Copy Cosntructor
bu Constructors dks fuEu izdkj ls mi;ksx esa fy;k tk,xk% &
sample s1 (4, 5); //Parameterized used
sample s2 (s1); //s1 copied to s2 copy constructor called
sample s3 = s1; //s1 copied to s3 copy constructor called
//again
Copy Constructor ds }kjk Values dk Initialization djuk Copy initialization dgykrk
gSaA
- 37 –
s1. output( );
s2. output( );
}
DESTRUCTORS
ftl izdkj Objects dks Create fd;k tkrk gSa mlh izdkj Object dks Destroy Hkh fd;k
tkrk gSaA Destructor ds }kjk] Constructor }kjk construct fd;s x;s Objects dks destroy
fd;k tkrk gSaA
Destructor Hkh member function gSa ftldk uke o Class dk uke same gksrk gSa ftls
(~) tilde ds sign ds ckn fy[kk tkrk gSaA Destructor dksbZ Arguments ugha ysrk o
bldh dksbZ Return type ugha gksrhA ;s compiler }kjk Automatically Call gksrs gSa
tc Object dks destroy fd;k tkrk gSaA
~ dk Sign Not dks iznf'kZr djrk gSaA vr% Destructor Not a Constructor gSaA
Example: -
class ABC
{ int count = 0;
public:
ABC( )
{ count ++;
cout<<"\n No. of objects created" <<count;
}
~ ABC( ) //Destructor definition
{ cout <<\n No. of Objects destroyed" << count;
count --;
}
};
void main( )
{
ABC A1, A2, A3;
- 38 –
{
cout << "INNER BLOCK" <<end1;
ABC A4;
}
}
ARRAY
ge tkurs gSa fd Array Variables dk collection gSa tks Same Type ds gksrs gSaA
rFkk ftUgsa ,d Single name fn;k tkrk gSaA Arrays dbZ izdkj ds gksrs gSa% &
(i) Single Dimensional Array
(ii) Multi Dimensional Array
Array dks define djus ds fy;s fuEu syntax dks mi;ksx esa fy;k tkrk gSa% &
datatype array name [size];
Example: - int a[4];
ARRAY OF OBJECTS
ftl izdkj Structure array dks define fd;k tkrk gSa mlh izdkj array Variable dks Class
type dk Hkh define fd;k tk ldrk gSaA bu Variables dks array of objects dgk tkrk
gSaA Example: -
class A1
{ char name [30];
float marks;
public:
void input ( );
void output ( );
};
bl izdkj A1 ,d User defined data type gSa ftls blds Object Create dj mi;ksx esa fy;k
tk ldrk gSaA
A1 ob1[3]; //array of ob1
Array of object dks memory esa mlh izdkj Store fd;k tkrk gSa ftl izdkj
Multidimensional array dksA Object }kjk data item Space dks Create fd;k tkrk gSaA
Member Function dks vyx ls Store fd;k tkrk gSaA ftls lHkh Objects }kjk mi;ksx
esa fy;k tkrk gSaA
Example: -
class emp
{ char name [30];
float age;
public:
void input( );
void output( );
};
void emp :: input ( )
{ cout << "Enter the name";
cin>>name;
cout << "Enter the age";
cin>>age;
}
void emp :: output ( )
{ cout <<"Name:" <<name <<end1;
- 39 –
cout <<"age:" <<age <<end1;
}
void main( )
{
emp emp1 [4];
for (int i = 0; i <4; i++)
{
cout <<"\n Details of emp1" <<end1;
emp1[i], input ( );
}
cout <<end1;
for (i = 0; i<4; i++)
{ cout<< "\n employee" <<end1;
emp1 [i], output ( );
}
}
POINTER TO OBJECT
Pointer ds Class ds Object dks Point fd;k tk ldrk gSaA Example: -
ABC x;
;gk¡ ABC ,d Class gSa rFkk X ,d Object gSa ftls ABC type dks define fd;k x;k
gSaA blh izdkj ABC Class ds Pointer ABC Class ds Pointer dks define fd;k tkrk
gSaA
ABC * ptr;
Object Pointers Run time ij Object Create djus ds fy;s Useful gksrs gSaA Object Pointer
ds }kjk Object ds Public members dks Access fd;k tkrk gSaA Example: -
class ABC
{ int x, y;
public:
void input (int a, int b)
{ x =a ; y = b;}
void output( )
{ cout <<end1 <<"x=" <<x;
cout << end1 <<"y=" <<y;
}
};
vc Class dk Variable rFkk Pointer fuEu izdkj declare fd;k tk,xk% &
ABC a;
ABC *ptr = & a;
mijksDr Pointer ptr esa a ds address dks initialize fd;k x;k gSaA
ABC ds Member Function dks nks izdkj ls define fd;k tkrk gSaA
1) Using dot operator and object
2) Using arrow operator and object pointer
a. input (2,3);
a. output ( );
mijksDr Statement esa Object & dot Operator dks mi;ksx esa fy;k x;k gSaA mlh
izdkj Pointers ds fy;s arrow operator mi;ksx esa fy;s tkrs gSa% &
ptr input (2,3);
ptr output ( );
- 40 –
D;ksafd Pointer ptr a dk alias gSa vr% blds fy;s fuEu Method dks Hkh mi;ksx esa
fy;k tk ldrk gSa% &
(*ptr). output ( );
Paran theses yxkuk vko';d gSa D;ksafd (.) Operator dh Precedence * ls high gksrh
gSaA
Example: -
void main( )
{
ABC ob1;
ABC *ptr = &ob1;
ptr input (3,4);
ptr output ( );
}
THIS POINTER
tc Class dks define fd;k tkrk gSa rc Memory esa Member functions dks Memory
space allocate gks tkrh gSaA vr% Member Function dh ,d gh Copy dks Class ds
lHkh Objects }kjk Share fd;k tkrk gSaA dsoy gj Object ds Data Members ds fy;s
vyx ls Space Allocate dh tkrh gSaA
Member Function 1 Member Function 2
Member Function 3
- 41 –
char name [30];
float sales;
public;
s1 (char *s, float a)
{
strcpy (name, " ");
strcpy (name, s);
sales = a;
}
void print( )
{ cout.write (this->name, 30); //use of this
cout << "has invoked print( ) function\";
}
};
void main( )
{
s1 raj ("Raj", 5000), seema ("Seema", 7000);
raj.print();
seema.print();
}
POINTER TO CLASS MEMBERS
Class ds Member ds Address dks ysdj mls Pointer esa Assign fd;k tkuk Hkh laHko
gSaA Member ds Address dks & Operator ds lkFk iwjs Class name ds }kjk Access
fd;k tkrk gSaA Class Member Pointer dks ::* ds }kjk Declare fd;k tkrk gSaA ftls
Class name ds lkFk mi;ksx esa fy;k tkrk gSaA Example: -
class A
{
int m;
public:
void display( );
};
Member m ds pointer dks fuEu izdkj Define fd;k tkrk gSa% &
int A :: *p = &A::m;
p Pointer fcYdqy Class Member dh rjg define fd;k x;k gSa ftls Class Object }kjk
Invoke fd;k tk,xkA
A::* dk vFkZ "Pointer to member of A Class" gSa rFkk &A::m dk vFkZ "address of m
member of A Class". Scope resolution operator dks Pointer rFkk Member nksuks ij apply
fd;k tkrk gSaA
tc Member dks Pointers ds lkFk Access fd;k tkrk gSa rks blds fy;s dereferencing
Operator dks mi;ksx esa ysrs gSaA Member Functions dks Invoke djus ds fy;s
Dereferencing Operator dks fuEu izdkj mi;ksx esa fy;k tkrk gSa% &
(Object_name. *pointer_to_member function) ();
(Pointer_to_object * pointer to member function) ( );
( ) dh Precedence .* o * high gksrh gSaA vr% parentheses vko';d gSaA
class A
{
int x,y;
public:
void input (int a, int b)
- 42 –
{ x=a; y=b;}
friend int sum (A m);
};
int sum (A a)
{ int A :: * px = &A :: x;
int A :: *py = &A :: y;
A *pm = &a;
int s = a.*px +pm*py;
return s;
}
void main( )
{
A ob1;
void (A :: *pf) (int, int) = & A :: input;
(ob1. *pf) (10, 20);
cout << "Sum =" <<sum (ob1) <<end1;
A *op = &ob1;
(op*pf) (30, 40);
cout << "Sum=" <<sum(ob1) <<end1;
}
References
Function ,d User Defined operation gSa ftls ("()") Operator ds lkFk Invoke fd;k tkrk
gSaA ;fn Function Arguments Recieve djrk gS rks bu Arguments dks Call Operator
esa fy[kk tkrk gSaA Arguments dks Comma ds }kjk separate fd;k tkrk gSaA
Function dks nks izdkj ls Invoke fd;k tkrk gSa%
a) Call by value
b) Call by reference
vr% Call by reference method dks fuEu izdkj ls mi;ksx esa fy;k tkrk gSaA
Reference fdlh Hkh variable dk alias gSaA tSls% &
float v = 2.5;
float & m = v; //m reference of v.
vr% m ds fy;s vyx ls memory dks allocate ugha fd;k tkrkA blh izdkj Pointer Hkh
Variable ds addresses dks Contain djrs gSa ftlls Values dks access fd;k tk ldrk gSaA
Example: - float v = 20.25;
float * fp;
fp = & v;
mijksDr example esa float * fp define fd;k x;k gSa ftlls float value dks Point fd;k
tkrk gSaA Variable Value dks fp ds }kjk access fd;k tk ldrk gSaA
REFERENCE PARAMETERS
tc Parameters dks function esa reference ds :i esa Pass fd;k tkrk gSa rks Formal
Parameters esa actual parameters ds references dks Pass dj fn;k tkrk gSaA vr%
Function ds }kjk Original Values dh Copy Create ugha dh tkrh gSaA cfYd Original
Values ds reference dks Pass fd;k tkrk gSaA
tgk¡ Original Values dks function ds }kjk Change djuk gks rc Call by reference dks
iz;ksx esa fy;k tkrk gSaA
Example: -
void main( )
- 43 –
{
clrscr( );
void swap (int &, int &); //prototype
int a,b;
a =7; b =4;
cout << "original values\n";
cout <<"a=" <<a<<"b="<<b<<"\n";
swap (a,b); //function call
cout <<"swapped values\n";
cout <<"a=" <<a<<" b="<<b<<"\n";
}
void swap (int &x, int &y)
{
int t;
t = x;
x = y;
y = t;
return;
}
mijksDr Example esa Function Call same gksxk ijUrq function declaration o function
definition nksuksa esa reference symbol dks mi;ksx esa fy;k tkrk gSaA
**Reference dks flQZ varaibles ds fy;s Pass fd;k tkrk gSa ijUrq Constants ds fy;s
References dks mi;ksx esa ugha fy;k tkrk gSaA
- 44 –
return a;
else
return b;
}
void out ( );
};
void f_ret_ref :: out ( )
{ cout << "The minimum value is" <<small (x,y); }
void main( )
{
fun f;
f. out ( );
}
PASSING REFERENCES TO OBJECTS
tc ,d Object dks fdlh Function esa 'Pass by value' Pass fd;k tkrk gSa rks fcuk
Constructor dks invoke fd;s ml Object dh Copy Create gks tkrh gSaA
;fn User dks Original Object ds lkFk dk;Z djuk gSa rks blds fy;s mlds Reference
;k Alias dks Pass fd;k tk ldrk gSaA
Example: -
class simple
{ int x;
public:
simple (int i)
{ x = i; }
~ simple( )
{ cout <<"Destroy object" <<x<<end1;}
void put (int i)
{ x = i;}
int get( )
{ return x;}
};
void fun (simple & s1)
{ s1. put (7);
cout <<"this x is local to fun" <<end1;
cout <<"x =" <<s1. get( ) <<end1;
}
void main( )
{
clrscr( );
simple s1(1);
cout <<"The x is in main( )" <<end1;
cout <<"x=" <<s.get( ) <<end1;
fun (s1);
cout <<"x = " <<s.get( ) <<end1;
}
DYNAMIC ALLOCATION OPERATORS
Dynamic Allocation dk vFkZ run time ij Program dks Memory Allocate djuk gSaA
Global rFkk Local Variable dks Compile time ij Memory allocate dh tkrh gSaA C++
}kjk nks unary operators dks define fd;k x;k gSa tks new rFkk delete gSa ftlds run
time ij memory dks allocate o deallocate fd;k tkrk gSaA ;s Operators new rFkk delete
- 45 –
free store memory ij Operation dks Perform djrs gSa ftUgsa free store operators dgk
tkrk gSaA
Class name ds lkFk lHkh izdkj ds Objects dks Create djus ds fy, New Operator dks
mi;ksx esa fy;k tkrk gSaA New Operator dh general form fuEu gSa%&
Pointer_variable = new data_type;
;gk¡ data type C++ dh data type gSa rFkk Pointer variable ml data type dk pointer gSaA
New operator }kjk data_type ds equal memory dks allocate fd;k tk,xk rFkk ,d Pointer
return gksxk tks newly allocated area dks point djsxkA
iptr = new int;
blds }kjk free store memory ls specific data type int ds fy, Memory allocate dh tk;sxhA
,d ckj tc Pointer Newly allocated memory Point djrk gSa rks mlesa data values dks at
address operator }kjk store fd;k tkrk gSaA
fptr = new float;
*fptr = 17.32;
syntax: - pointer variable = new Data type (value);
ex: - char * cptr = new char ('c');
New operator ds }kjk User define Data type dks Hkh Memory allocate dh tkrh gSa
tSls structures, array, classes vkfnA One dimensional array dks New }kjk fuEu izdkj
Memory allocate nh tkrh gSaA
syntax: - pointer variable = new data type [size];
ex.: - int * value = new int [10];
blds }kjk 10 int array dks free store memory allocate dh tk,xhA 2-D array ds fy, fuEu
izdkj ls memory allocate dh tk,xhA
int * val;
val = new int [4][7]; //legal
val = new int [x][7]; //legal
val = new int [ ][7]; //illegal
val = new int [4][ ]; //illegal
val = new int [x][ ]; //illegal
By default new operator Nul return djrk gSa tc insufficient free store memory available
gksA initialization rHkh perform fd;k tk,xk tc new operator }kjk non zero value return
dh tk,A
tc fdlh Object dks new ds }kjk create fd;k tkrk gSa vkSj mldh vko';drk ugha
gSa rks mls destroy djus ds fy, 'delete' operator dks mi;ksx esa fy;k tkrk gSaA ;g
memory deallocation operator dgykrk gSaA
syn: - delete pointer variable;
ex.: - delete iptr;
Pointer variable ml data object dks point djrk gS ftls new }kjk create fd;k x;k gSaA
New operator ds }kjk allocated array dks fuEu izdkj delete fd;k tkrk gSaA
syn: - delete [size] pointer variable;
Example: -
class student
{ int *roll;
float * marks;
static int size;
public:
void getdata( );
void putdata( );
};
- 46 –
int student :: size;
void student :: getdata( )
{
cout <<"Enter the elements of array?\m";
cin >> size;
//Dynamically allocate memory space for these arrays
roll = new int [size]
marks = new float [size];
//check that memory is available of not
if (roll! ='\0' 11 marks = '\0')
{
cout << "Out of memory! aborting!";
return ( );
}
//Read value in the array elemnts;
for (int i = 0; i <size; i++)
{
cout <<"Enter roll no & marks for student" <<i+1<<"\n";
cin>> roll[i]>> marks[i];
}
}
void student :: putdata( )
{
cout << "\t Roll no \t \t marks \n";
for (int i = 0; i<size, i++)
cout <<"\t" <<roll[i] <<"\t\t" <<marks [i] <<"\n";
//Deallocate the memory by array before exiting
delete [ ] roll;
delete [ ] marks;
}
void main( )
{
clrscr( );
student s1;
s1. getdata( );
s1. putdata( );
getch( );
}
- 47 –
UNIT III
FUNCTION OVERLOADING
Function Overloading polymorphism dk Concept gSaA ftlesa ^,d iaFk vusd dkt^ ds
concept dks mi;ksx esa fy;k tkrk gSaA C++ esa Polymorphism dks nks izdkj ls
Implement fd;k tk ldrk gSaA
1) Function Overloading
2) Operator Overloading
Function overloading esa ,d gh function dks vyx&vyx vFkZ esa iznf'kZr fd;k tkrk
gSaA
tc Operator ds nks ;k nks ls vf/kd Meaning dks define fd;k tkrk gSaA C++ esa
nksuks functions vyx&vyx define gksaxs tks fuEu gSa % &
float divide (int a, int b);
float divide (float x, float y);
mijksDr divide function esa igyk divide function nks integer argument ysrk gSa tks
float ysus okys divide function ls vyx gSaA
,d function dk uke ftldh cgqr lh definitions gSa ftUgsa vyx&vyx arguments ls
differenciate fd;k tkrk gSaA mls function overloading dgrs gSaA
- 48 –
Calling Overloaded functions: -
Overloaded function dks vU; function dh rjg gh call fd;k tkrk gSaA Number rFkk
Type of arguments ds vk/kkj ij decide fd;k tkrk gSa fd fdl function dks invoke djuk
gSaA
dksbZ Hkh function call lcls igys number rFkk type of argument dks check djrk gSa
ckn esa function dks execute djrk gSa ysfdu dHkh&dHkh float rFkk double values
;k int or long values esa confusion gksrk gSaA tSls ;fn fuEu declaration ds function
dks invoke djuk gSa rks% &
void psqr (double d);
ftlesa value 1.24 nh xbZ gSaA bl value dks float o double dqN Hkh consider fd;k tk
ldrk gSaA
vr% bl izdkj ds confusion dks nwj djus ds fy, constant suffixes dks mi;ksx esa
fy;k tkrk gSaA (f, l, l, UL vkfn)
float – F , long double – L
Unsigned int – U , Unsigned long int – UL
vr% Constant suffix dks mi;ksx esa ysdj ambiguity dks nwj fd;k tkrk gSaA
BEST MATCH <w¡<us ds fy;s dke esa vkus okys steps: - Function
overloading dks argument matching ds }kjk Perform fd;k tkrk gSaA blesa actual
arguments o formal argument dks compare fd;k tkrk gSaA ;gk¡ 3 Possible cases gSa%
&
a) A match: - tc function call dk match fe tk,A
b) No match: - tc function call dk dksbZ match u feysA
c) Ambigious match: - tc function call ls related function dks ,d ls T;knk ckj define
fd;k x;k gksA
Compiler fdlh Hkh function ds fy;s best possible match <w¡<rk gSa blds fy;s
compiler fuEu steps dks follow djrk gSa% &
(1) Exact Match Search djuk% & tSls% &
void fun1 (int);
Overloaded function
void fun1 (double);
fun1 (0); //exact match, match fun1 (int)
(2) A match through promotion: - ;fn exact match ugha feyrk gSa rks actual arguments
ds promotion }kjk Match fd;k tkrk gSa tSls% &
void fun1 (int);
void fun1 (float);
fun1 ('c'); //match through promotion;
match fun1 (int);
3) Match through application of standard C++ rules: - tc exact match o Match through
promotion ugha gksrk rc standard conversion ds }kjk actual argument dks match fd;k
tkrk gSaA
void fun1 (char);
void fun1 (double);
fun1 (471); // match through standard conversion
// matches fun1 (double);
- 49 –
cout <<"\n Interest Amount :" <<(p*t*r) <<"\n";
}
void amount (float p, int t)
{
cout << "\n Principal Amount :" <<p;
cout << "\t time :"<<t;
cout << "\t rate : 0 ; 0.08
cout << "\n Interest Amount :" << (p*t*0.08) <<"\n";
}
void amount (float p, float r)
{
cout << "\n Principal Amount :" <<p;
cout <<"\t Time : 2 years";
cout <<"\t Rate :" <<r;
cout <<"\n Interest Amount :" << (p*2*r) <<"\n";
}
void amount (int t, float r)
{
cout <<"\ Principal Amount : 2000";
cout <<"\t Time :" <<t<<"years";
cout <<"\t Rate:" <<r;
cout <<"\n" Interest Amount :" << (2000*t*r) <<"\n";
}
void amount (float p)
{
cout <<"\n Principal Amount : "<<p;
cout <<"\t time : 2years";
cout <<"\t Rate: 0.08";
cout <<"\n Interest Amount :" << (p*2*0.08) <<"\n";
}
void main ( )
{
clrscr( );
cout <<"Case 1";
amount (2000.0F);
cout <<"Case 2";
amount (2500.0F, 3);
cout <<"Case 3";
amount (2300.0F, 2, 0.13F);
cout <,"Case 4";
amount (2, 0.13F);
cout <<"Case 5";
amount (6, 0.09F);
}
OPERATOR OVERLOADING
Polymorphism ds}kjk vyx&vyx Internal Structure ds object dks ,d gh External
ShapePolymorphism dks Inheritance implement
interface }kjk Implement fd;k tk ldrk gSaA
djus ds fy, mi;ksx esa fy;k tkrk gSaA tSls
Draw( )
- 50 –
Object Circle Object box Object triangle
Draw (Circle) Draw (box) draw (triangle)
Polymorphism dks Operator o function Overloading ds }kjk Implement fd;k tk ldrk
gSa tgk¡ Same Operator rFkk function vyx&vyx argument ds vk/kkj ij vyx&vyx
dk;Z djrk gSaA bl Polymorphism dks compile time ij gh check dj fy;k tkrk gSa vr%
bls early binding, static binding ;k compile time polymorphism dgykrk gSaA
Operators esa ls dqN Operators ,sls gSa ftUgsa Overload ugha fd;k tk ldrk gSa%
&
Class member access operator (.,.*)
Scope resolution operator (::)
Size operator (sizeof)
Conditional operator (?:)
- 51 –
operands dks explicitly pass fd;k tkrk gSaA D;ksafd friend function ds fy;s this
pointer ugha gksrkA
Operation Overloading ds nkSjku fuEu Rules dks ugha cnyk tk ldrk% &
1) Syntax – no. of operands o mudk format
2) Operators dh precedence
3) Operators dh associativity
- 52 –
void display ( );
void operator-( ); //overload unary minus
};
void unary1 :: display( )
{ cout <<"x =" <<x;
cout <<"y =" <<y;
cout <<"z ="<<z;
}
void unary1 :: operator-( )
{ x = -x;
y = -y;
z = -z;
}
void main ( )
{ unary1 ob1;
ob1.input (10, -40, 60);
cout <<"ob1:";
ob1. display( );
-ob1;
cout <<"ob1:";
ob1.display( );
}
UNARY + OPERATOR
As member function;
# include <iostream.h>
#include <conio.h>
class s1
{
int x,y;
public:
void in (int a, int b)
{
x = a;
y = b;
}
void out( )
{
cout <<"x: -" <<x;
cout <<" y: -"<<y;
}
void operator + ( )
{
x2 + x;
y2 + y;
}
};
void main ( )
{
- 53 –
s1 ob;
ob. in (2, -3);
ob. out ( )
+ ob;
ob. out ( );
}
Result: - x = 2, x = 2
y = -3, y = 3
- 54 –
void in (int a, int b)
{
x = a;
y = b;
}
void out ( )
{
cout <<"x " <<x;
cout <<" y " <<y;
}
void operator –( )
{
x = x –1;
y = y-1;
}
};
void main( )
{
s1 01;
o1. in (2, -3);
o1. out ( );
-- o1;
o1 . out ( );
}
- 55 –
void operator – (s1 & o)
{
o.x = -o.x;
o.y = - o.y;
}
void main( )
{
s1 o1;
ob. in (2, -3);
o1. out ( );
+o1;
o1. out ( );
- o1;
o1. out ( );
}
- 56 –
o1. out ( );
++o1;
o1.out ( );
-- o1;
o1.out ( );
}
# include <iostream.h>
# include <conio.h>
class complex
- 57 –
{
int real, imag;
public:
void in (int a, int b)
{
real =a;
imag = b;
}
void out ( )
{
cout <<real<<"+i"<<imag <<endl;
}
complex operator – (complex ob)
{
complex ob1;
ob1.real = real – ob.real;
ob1.imag = imag – ob.imag;
return (ob1);
}
};
void main( )
{
complex ob, ob1, ob2;
ob.in (7, 9);
ob.out ( );
ob1.in (3, 4);
ob1.out ( );
ob2 = ob - ob1;
ob2.out ( );
}
# include <iostream.h>
# include <conio.h>
class complex
{
int real, imag;
public:
void in (int a, int b)
{
real =a;
imag = b;
}
void out ( )
{
cout <<real<<"+i"<<imag <<endl;
}
complex operator * (complex ob)
- 58 –
{
complex ob1;
ob1.real = real * ob.real – imag* ob.imag;
ob1.imag = real*ob.imag+imag*ob-real;
return ob1;
}
};
void main( )
{
complex ob, ob1, ob2;
ob.in (7, 9);
ob.out ( );
ob1.in (3, 4);
ob1.out ( );
ob2 = ob*ob1;
ob2.out ( );
}
- 59 –
ob1.in (3, 4);
ob1.out ( );
ob + = ob1;
ob.out ( );
ob- = ob1;
ob.out( );
}
Result: - ob = 7,9
ob1 = 3,4
10, 13 + = Result
7, 9 - = Result
- 60 –
ob + = ob1;
ob.out ( );
ob- = ob1;
ob.out( );
}
Result: - ob 10, 29
ob1 20, 30
ob = 30, 59 +=Result
ob = 10, 29 - = Result
SPECIAL OPERATOR OVERLOADING
Subscript Operator ([ ])
# include <iostream.h>
# include <conio.h>
class sub
{
int a1 [4];
public :
sub (int a, int b, int c, int d)
{
a1 [0] = a;
a1 [1] = b;
a1 [2] = c;
a1 [3] = d;
}
int operator [ ] (int i)
{
return a1 [i];
}
};
void main( )
{
int i;
sub x (2, 3, 4, 5);
cout << x [2];
}
Result: - It shows 4
mijksDr Program esa ;g leL;k gSa fd ;fn Array Index esa 4 ls T;knk Value Hkh nh
tk;s rks og mls Accept dj Result Garbage Output ds :i esa nsxkA
vr% ;g dgk tk ldrk gSaA mijksDr Program Array Index dks check ugha djrk gSa
blfy, fuEu Program }kjk bl Problem dks nwj fd;k tk ldrk gSaA
# include <iostream.h>
# include <conio.h>
class sub
{
int a1 [4];
public :
sub (int a, int b, int c, int d)
- 61 –
{
a1 [0] = a;
a1 [1] = b;
a1 [2] = c;
a1 [3] = d;
}
int & operator [ ] (int i)
{
if (i < 0 || i>3)
{
cout <<"subscript is out of range";
exit (1);
}
return a1 [i];
}
};
void main ( )
{
int i;
sub x (2, 3, 4, 5);
cout << x [2];
}
Result: - x: - 4
- 62 –
# include <iostream.h>
# include <conio.h>
class fcall
{
int x, y;
public:
fcall ( )
{
x = 0;
y = 0;
}
fcall (int m, int n)
{
x = m;
y = n;
}
fcall operator ( ) ( int i, int j)
{
x = 2*i;
y = 2*j;
return * this;
}
void display ( )
{
cout <<"The value of x : -" <<x;
cout <<"The value of y :-"<<y;
}
};
void main( )
{
fcall ob1 (2,3), ob2 (7,7);
ob1. display ( );
ob2. display ( );
ob1 (2, 3);
ob2 (3,4);
ob1.display ( );
ob2. display ( );
}
Result: - 2, 3 7, 7
4, 6 ob1
6, 8 ob2
- 63 –
friend istream & operator >> (istream & in, c1&c);
friend ostream & operator << (ostream & out, c1 & c);
};
c1 :: c1( )
{ for (int i = 0; i < size; i++)
a[i] = 0 : 3
}
c1 :: c1 (int x)
{ for (int i = 0; i = size; i++)
{ a(i) = x; }
}
c1 operator * (int a, c, b)
{ c1 c;
for (int i = 0; i < size; i++)
{ c.a [i] = b.a[i]*a;}
return c;
}
istream & operator >> (istream & in, c1 & c)
{ for (int i = 0; i < size; i++)
{ in>> c. a[i];}
} return in;
ostream & operator << (ostream & out, (i & c)
out << "<";
{ for (int i = 0; i < size; i++)
out << c.a[i] << ",";
out << ">";
return out;
}
};
void main( )
{ c1 m;
cout <<" Enter the element in m "<<"\n";
cin>>m;
cout << "m=" <<m<< "\n";
c1 p;
p = 2*m;
cout << "p=" <<p<< "\n";
}
- 64 –
emp :: emp ( )
{ cout << end1 << "In constructor" ;
}
emp :: ~emp ( )
{
cout <<endl << "in Destructor";
}
char pool [sizeof (emp)];
void * emp :: operator new (s)
{ out << end1 << "Reached at new";
return pool;
}
void emp :: operator delete (void * q)
{ cout << end1 <<"reached emp :: delete";
}
void main( )
{
emp * e1;
e1 = new emp;
delete e1;
}
- 65 –
Unit – IV
INHERITANCE
;g ges’kk vPNk gksrk gSa fd fdlh oLrq dks ckj&2 cukus ds LFkku ij igys ls
cuh gqbZ oLrq dk iz;ksx gks ldsA ,slk djus ls le; dh cpr rks gSa lkFk gh og
tfVy gksus ls Hkh cp tkrh gSaA rFkk budk iz;ksx djuk vklku gks tkrk gSaA
blds lkFk gh mlesa Modification djus rFkk le>us esa Hkh vklkuh gksrh gSaA
bl izdkj ckj&ckj ,d gh dke djus ls cp tkrk gSaA
C++ esa Re use ability ds fl)kUr dks n`<rk ls Support djrh gSaA C++ dh Classes ge
fofHkUu fof/k;ksa ls Reuse dj ldrs gSaA ,d ckj tks Class cuk yh tkrh gSaA mls
vU; Class dh lgk;rk ls oolopt dj fy;k tkrk gSaA vFkkZr~ ,d u;h Class dks iwjkuh
Class ls Drive djuk rFkk iwjkuh Class dh leLr Property dks iwu% iz;ksx djuk gh
Inheritance vFkok Derivation dgykrk gSaA Inheritance esa iwjkuh Class dks Base
Class rFkk u;h Class dks Derived Class dgk tkrk gSaA Derived Class }kjk Base Class
dh dqN vFkok leLr Properties dks Inherit fd;k tk ldrk gSaA Derived Class dks
declare rFkk Define djus dk dk;Z bldh Base Class ls Relationship Specify djds fd;k
tkrk gSaA Derived Class dk mldh Base Class ls Relationship specify djus ds fy, :
(Colon) dk iz;ksx fd;k tkrk gSaA Derived Class dks fuEu izdkj Declare rFkk Define
fd;k tk ldrk gSaA
Visibility mode Optional gksrk gSaA mls ge private rFkk Public ns ldrs gSaA
Default visibility mode Private gksrk gSaA visibility mode ;g fu/kkZfjr djrk gSa fd
Base Class dks Publicity derived fd;k x;k ;k Privately
tc Derived Class dks Base Class ls Privately inheritance fd;k tkrk gSaA rc Base Class
ds Public member Hkh derived class esa Private cu tkrs gSaA vkSj bl izdkj Base
Class ds Public Function dks derived class ds member function }kjk gh access fd;k tk
ldrk gSaA bUgsa Object ds ek/;e ls (.) Operator dk iz;ksx djds Directly access
ugha fd;k tk ldrkA tc Derived Class dks Base Class ls Publicly inherit fd;k tkrk
gSaA rc Base Class ds Public members Hkh Derived Class esa Public gh cus jgrs
- 66 –
gSaA vkSj bUgs Object ds ek/;e ls (.) Operator dk iz;ksx djds Directly access fd;k
tk ldrk gSaA ijUrq nksuks gh n’kkvksa esa Base Class ds Private members inherit
ugha gksrs gSaA blfy, Base Class ds Private members Derived Class esa dHkh
ugha vk ldrsA
lyees of Inheritance
(1) Single Inheritance :- tc dsoy ,d gh Base Class ij vk/kkfjr u;h Derived Class cuk;h
tkrh gSa rks ;g Single Inheritance dgykrk gSaA
bl fp= esa Class A ls Class dks Inheritance iznku fd;k tk jgk gSaA Class B esa
Class A dh lHkh Properties rks gksxh gh lkFk esa bldh viuh Properties define dh tk
ldrh gSaA
- 67 –
void B:: show_a ( )
{
cout << “a=” <<a<< “\n”;
}
void D:: mul ( )
{
c=b * ge_a ( );
}
void D:: display ( )
{
cout <<“a=” <<get_a ( ) << “\n”;
cout <<“a=” <<b<< “\n”; Private Section
cout <<“c=” <<c<< “\n\n”; C Variable from Private
section with class D
}
int main ( ) Public Section
{
D d; b
d. get_ab ( );
d. mul ( ); get_ab ( )
d. show_a ( ); Inherited from B
d. display ( );
get_a ( )
d.b = 20; Function from B
d. mul ( );
d. display ( ); show_a ( )
return 0;
}
Mul ( )
Function
from
Display ( )
Class D
- 68 –
};
void B:: get_ab ( )
{ void D:: display ( ).
cout “\n Enter values for a and b”; {
cin>>a>>b; show_a ( );
} cout<<“b=”<<b<<“\n”<< “c=” <<c<< “\n\n”;
int B:: get_a ( ) }
{ int main ( )
int B:: get_a ( ) {
{ D d;
return a; // d. get_ab ( ); //notwork
} d. mul ( );
void B:: show_a ( ) //d. show_a ( ); //notwork
{ d.display ( );
cout <<“a=” <<a<< “\n”; //d.b = 20; //notwork
} d. mul ( );
void D:: mul ( ) d. display ( );
{ return 0;
get_ab ( ); }
c=b * get_a( );
}
tc fdlh Protected Member dks Publicly Inherit fd;k tkrk gSa rks og Derived
Class esa Hkh Protected cuk jgrk gSaA bl izdkj bls ge Derived Class esa Member
Function dh lgk;rk ls access dj ldrs gSa rFkk lkFk gh eq[; ckr ;g gSa fd ;g
Protected Member vkxs iwu% Inherit fd;s tk ldrs gSaA
tc Protect Members dks Private Mode esa Inherit fd;k tkrk gSaA rc ;g Derived
Class esa Private Members cu tkrs gSaA vFkkZr ;s Members vc Derived Class ls
Member Function dh lgk;rk ls access fd;k tk ldrs gSaA ijUrq vkxs inherit ugha fd;s
tk ldrs gSaA
- 69 –
fdlh Base Class dks Protected Mode esa Hkh inherit fd;k tk ldrk gSaA
Protected Derivation esa Base Class ds nksuksa Members, Public rFkk Protected,
Derived Class esa vkdj Protected cu tkrs gSaA
Derived Class Visibility
Base Class Public Private Protected
Visibility Derivation Derivation Derivation
Private Not inheritable Not inheritable Not inheritable
Protected Protected Private Protected
Public Public Private Protected
Multilevel inheritance :- tc fdlh Derived Class }kjk fdlh igys ls cuh Derived
Class dks Inheritance fd;k tkrk gSa rks bls Multilevel Inheritance dgk tkrk gSaA
Class Y: visibility_mode x;
{
Body of Y;
};
Class z: visibility_mode y;
{
Body of Z;
};
// Example of Multilevel inheritance
#include<iostream.h>
#include<conio.h>
class st4
{
protected:
int roll_number;
public:
void get_number (int);
void put_number ( );
};
void stu:: get_number (inta)
{
roll_number = a;
}
void stu :: put_number ( )
{
cout<<“\n\troll number:” <<rollnumber<<“\n”;
}
class test:public stu
{
protected:
float m1;
float m2;
Public :
Void get_marks (float,float);
Void put_marks ( );
- 70 –
};
void test :: get_marks (floatx, floaty)
{
m1=x; m2=y;
}
void test :: Put_marks ( )
{
cout<<“\n Marks in sub1:“<<m1<<“\n”;
cout<<“\Marks in sub2:” <<m2<<“\n”;
cout << “-------“;
}
class Result : Public test
{
float total;
Public:
Void display ( );
};
void Result :: display ( )
{
total = m1+m2;
put_number ( );
put_marks ( );
cout<<“\n\t total :” <<total<<“\n”;
cout<< “--------------“;
}
void main ( )
{
clrscr ( );
result s;
s.get_number (111)
s.get_marks (75, 65)
s.display ( );
getch ( );
}
DerivedA class
- 71 –
Public c:
Void get-m (int);
};
class nan
{
Protected
int n;
Public :
Void get_n (int);
};
class pop:public man, public nan
{
Public:
Void display ( );
};
void man:: get_m (int x)
{
m=x;
}
void nan::get_n (int y)
{
n=y;
}
void pop:: display ( )
{
cout<<“\n\tm=”<<m<<“\n”;
cout<<“\n\tn=”<<n<<“\n”;
cout << “---------“;
cout<<“\n\t m&n=”<<m*n<<“\n”;
cout<< “---------“
}
void main ( )
{
clrscr ( );
pop p;
p. get_m (111);
p.get_n (75)
p.display ( );
getch ( );
}
Hybrid Inheritance :- dbZ ckj ,slh ifjflFkfr vkrh gSa tc gesa ,d ls vf/kd
izdkj ds Inheritance dks iz;ksx djuk iM+rk gSaA tc fdlh Class dks ,d ls vf/kd
izdkj ds Inheritance iznku fd, tkrs gSa rks bl izdkj Inheritance dks Hybrid
Inheritance dgk tkrk gSaA
Basex class1
- 72 –
Derived Class A
- 73 –
grade =s;
}
void put_grade ( )
{
cout <<“/n Grade in Sports:” <<grade << “\n\n”;
}
};
class result: Public test, Public sport
{
float total;
Public:
Void display ( );
};
void result :: display ( )
{
total = m1+m2
put_number ( );
Put_marks ( );
Cout << “\n\tTotal:” <<total<< “\n”;
Cout << “----------\n”;
Put_grade ( );
}
void main ( )
{
clrscr ( );
result s;
s.get_number (111)
s.get_grademarks (75, 65)
s.get_grade (‘A’);
s.display ( );
getch ( );
}
- 74 –
vr% derived class, base class dh Initial values pass djus dh responsibility ysrk
gSaA vr% derived class ds object ds }kjk lHkh classes dks initial value pass dj nh
tkrh gSaA
Derived Constructor function dh header line dks (:) colon ds }kjk nks Parts esa
separate fd;k tkrk gSaA first part esa argument declaration fd;k tkrk gSa ftls derived
constructor esa pass djuk gks rFkk second part base constructor dks function call list
dks iznf'kZr djrk gSaA
Example: - D (int a), int a2, float b1, float b2, int d1):
A (a1, a2), B(b1, b2)
Call to constructor A Call to constructor B
{
d = d1; //execute own constructor variable
}
mijksDr mnkgj.k esa A(a1, a2) A base constructor dks invoke djrk gSaA rFkk B(b1,
b2) B base constructor dks Invoke djrk gSaA rFkk D class ds Lo;a ds rhu values
gSaA bu lHkh dks D ds Object ds }kjk fuEu izdkj invoke fd;k tk,xk% &
D obj (5, 12, 3.0, 4.5, 16);
Execute of Base Class Constructor
Class B : public A Order of Execution
{ A ( ); base constructor
B ( ); derived cosntructor
};
---------x-------------x-----------x-------------x------------
---------x-------------x-----------x-------------x------------
Example: -
Class A
{ int x;
public :
A (int i)
{ x = i;
cout <<"x is initialized\n";
}
void show( )
} cout <<"x=" << x << "\n";}
};
- 75 –
Class B
{
float y:
public :
B (float s)
{ y = s;
cout <<"B is initialized "\n";
}
void show1( )
{ cout <<"y=" <<y<<"\n";}
};
class C : public B, public A
{
int a, b;
public :
c(int i, float j, int k, int l); A(i), B(j)
{
k = a;
l = b;
cout << "C is initialized \n";
}
void show2( )
{ cout <<" a =" << a << "\n";
cout <<"b =" <<b<< "\n";
}
};
main( )
{
c ab (5, 3.5, 7, 10);
ob. show ( );
ob. show1 ( );
ob. show2 ( );
}
vr% Inheritance esa Constructor define djus ds fy;s fuEu syntax gSa %&
Constructor_name (argument list): initialization section
{
assignment section
}
ge tkurs gSa fd igys base class constructor execute gksrs gSa ckn esa derived class
constructor dks execute gksrs gSa ckn esa derived class constructor dks execute fd;k
tkrk gSa tcfd destructure blds foijhr dk;Z djrs gSaA igys derived class constructor
dks destruct fd;k tk,xk ckn esa base class object destruct gksxkA
Polymorphisom :-;g oops dk lcls egRoiw.kZ xq.k gSaA tSlk fd blds uke ls
gh izrhr gksrk gSaA bldk rkRi;Z gSa ,d gh oLrq ds vusd :i vHkh rd
Polymorphism dks ge Function dks Select djus ds fy, Compiler }kjk muds
Arguments ds Datatype rFkk la[;k dks Match fd;k tkrk gSaA ;g Information Compiler
dks Compile time ij izkIr gksrh gSaA ftls Compiler Appropriate Function dks Compile
time ij gh Call dj ysrk gSaA
Polymorphism eq[;r% nks izdkj dk gksrk gSaA
- 76 –
1. Compile time
2. Run time Polymorphism
(1) Compile time Polymorphism – C++ esa ge ,d uke ds vf/kd Function vius
Programme esa cuk ldrs gSaA rFkk tc bUgsa iz;ksx djus ds fy, Call fd;k tkrk
gSaA rc Compiler ml Function ds fy, Arguments dh la[;k rFkk muds Datatype dks
feykrk gSaA pwafd ;g dk;Z Compile time Polymorphism, Early binding vFkok Static
Binding dgk tkrk gSaA bl izdkj early binding dk vFkZ ,d Object dk vFkZ ,d Object
}kjk Function dks Compile time esa gh igpku dj Call fd;k tkrk gSaA
(2) Run time Polymorphism – vusd ckj ,slh fLFkfr vkrh gSa fd nks Classes
ftuesa ge Inheritance dk iz;ksx dj jgs gSa ftudk Prototype Hkh leku gksrk
gSaA ;g Function Overloading ugha dgk tk ldrk gSaA D;ksafd leku uke o
Prototype okys Function vyx&vyx Classes esa gSaA ,slh fLFkfr es tc Function dks
Call fd;k tkrk gSaA rc Compiler dks ;g Kkr ugha gks ikrk gSa fd buesa fdl
Function dks Call fd;k tkrk gSaA ,slh fLFkfr esa derived Function dks Programme
esa Runtime ij Select djds Call fd;k tkrk gSaA bls Runtime Polymorphism dgrs
gSaA
Example : Class x
{
public:
void disp ( ); //In base class
{
}
};
class y: classx
{
= Public:
void disp ( ); //In Derived class
{
=
}
};
mijksDr Function dks Overloaded ugha dgk tk ldrk gSaA D;ksafd nksuks
vyx&2 Classes esa gSaA ,slh fLFkfr esa Compiler ;g tku ugha ik;sxk fd dkSulk
Function Call gksA bl fLFkfr esa Runtime Polymorphism dk iz;ksx fd;k tkrk gSaA
C++ esa Runtime Polymorphism ds fl)kUr dks iz;ksx esa ykus ds fy, Virtual
Function dk iz;ksx djuk gksrk gSaA Run time Polymorphism dks Late binding rFkk
Dynamic binding Hkh dgk tkrk gSaA Dynamic binding dks iz;ksx esa ykus ds fy,
Pointer Type ds Object ds ckjs esa Hkh tkuuk o le>uk vko’;d gSaA
- 77 –
Pointer to Object – vc rd geus Pointer dk iz;ksx Variable ds lkFk gh fd;k
gSaA Pointer dk iz;ksx fdlh Class ds Pointer Type ds Object cukus ds fy, Hkh fd;k
tk ldrk gSaA Pointer Type ds Object Runtime ij u;s Object cukus ds dke esa vkrs
gSaA Pointer Type ds Object ls ge mlh Class ds Public Members Hkh access dj ldrs
gSaA Pointer Type ds Object fuEu izdkj cuk;s tk ldrs gSaA
xyz A
xyz *ptr = &A
Example:-
Class item
{
int code;
float Price;
Public:
Void getdata (int a, float b)
{
code=a;
Price =b;
}
void show (void)
{
cout<<“Code:”<<code<<“\n”;
cout<<“Price:”<<Price<<“\n”;
}
};
void main ( )
{
item x;
item *ptr = &x;
ptr getdata (10, 25.75);
ptr show ( );
getch ( );
}
Virtual Function – tc ge Base Class rFkk derived Class esa leku uke o
Prototype ds Function cukrs gSa rks ;g vko’;d gSa fd Base Class ds Member
Function dks Virtual keyword ds lkFk cuk;s tk;sA tc fdlh Function dks Virtual cuk
ysrs gSa rc Compiler Function dks igpku dj Runtime ij Pointer ds vk/kkj ij u djds
Object ij dk;Z dj ldrs gSaA dHkh&2 ,slh fLFkfr gksrh gSa fd gesa Runtime
Polymorphism dks iz;ksx esa ykus ds fy, Base Class esa Virtual Function cukus
iM+rs gSaA ijUrq buls dksbZ dk;Z lEiUu ugha djkuk gks rks Base Class esa bl
izdkj define djrs gSaA
Virtual Void display ( ) = O;
MijksDr Function dksbZ dk;Z ugha djsxkA vr% bl izdkj define Vritual
Function dks Pure Virtual Function dgk tkrk gSaA
Virtual Functio cukus ds fu;e
1. ;s fdlh Class dk Member gksuk vko’;d gSaA
2. bldks dsoy Pointer type ds Object ls gh acces fd;k tk ldrk gSaA
3. ;s fdlh nwljh Class ds fy, Friend Function gks ldrs gSaA
- 78 –
4. bldks Base Class esa define fd;k tkuk vko’;d gSaA
5. Virtual Constructor ugha cuk;s tk ldrs gSaA ijUrq Virtual Destructor cuk;s
tk ldrs gSaA
6. Base Class dk Pointer, derived class ds Object dks rks access dj ldrk gSa
ijUrq derived class dk Pointer, Base Class ds Object dks access ugha dj ldrk
gSaA
7. Base Class esa define Virtual Function rFkk Derived esa Class esa define
function dk uke rFkk Prototype leku gksus pkfg,A
Example:-
Class Base
{
Public:
Void display ( )
{
cout<<“\n Display Base”;
}
virtual void show ( )
{
cout<<“\n show Base”;
}
};
class derived: Public Base
{
Public:
Void display ( )
{
cout<<“\n Display derived”;
}
void show ( )
{
cout<<“\n show derived”;
}
};
void main ( )
{
Base B;
Derived D;
Base *bptr;
Cout<<“\n bptr Points to base\n”;
Bptr = &B;
bptr display ( );
bptr show ( );
cout<<“\n\n bptr Points to derived \n”;
bptr = &D;
bptr display ( );
bptr show ( );
getch ( );
}
- 79 –
Pointer to derived Class :- ge dsoy Base Class dk gh Pointer Object ugha cuk
ldrs cfYd derived class dk Hkh pointer Object cuk ldrs gSaA mnkgj.kr% ;fn B ,d
Base Class gSaA rFkk D ,d deroved Class gSa rks B Class dk Pointer D Class dks Hkh
Point dj ldrk gSaA Base Class ds Pointer Object ds }kjk ge dsoy mUgha Members
dks access dj ldrs gSa tks B Class ls Inherit gq, gSaA mu members dks access
ugha fd;k tk ldrk gSa tks D Class ls lEcaf/kr gksrs gSaA ;fn Base rFkk derived
class nksuks esa dksbZ Member Same gSa rks Base Class ds Pointer Object ds }kjk
ges’kk Base Class ds M ember dks gh access fd;k tk;sxkA vFkkZr Base Class dk
Pointer derived Class ds lHkh Members dks directly access ugha dj ldrk gSaA blds
fy, gesa derived class dh Pointer Object declare djuk gksxkA
Example:
Class BC
{
Public:
int b;
void
void show ( )
{
cout<<“b=”<<b<<“\n”;
}
};
Public:
int d;
Void show ( )
{
cout <<“4”<<“\n”<<“d=”<<d<“\n”;
}
};
void main ( )
{
BC *bptr;
BC base;
Bptr = & base;
bptr – b= 100; //access the bc via base Pointer
cout <<“bptr Points to base object\n”;
bptr – show ( );
// derived class
DC derived;
Bptr = & derived;
bptr b=200; //access DC via base Pointer
/* bptr d=300; */ //won’t work
cout<<“bptr now Points to derived object
/* accessing d using a pointer of the derived class DC */
DC *dptr;
dptr = & derived;
dptr = & derived
dptr 300;
cout<<“dptr is derived type Pointer \n”;
dptr show ( );
getch ( );
- 80 –
}
- 81 –
Unit – V
C++ Streams
Stream Sequence of bytes dk Source gSaA Stream dks fdlh Hkh I/O device rFkk I/O
dks uniformed way esa perform djus ds fy;s Use esa fy;k tkrk gSaa C++ dh
iostream Library abstraction dk ,d Object Oriented implementation gSaA C++ esa I/O
Streams dks Use esa ysus ds fy;s iostream.h header file dk Program esa Use esa fy;k
tkrk gSaA Two Stream operators ftUgsa eq[;r% Use esa fy;k tkrk gSa %&
<<:: insertion for output
>>:: extraction for input
fuEu streams dks automatically create o open fd;k tkrk gSaA
cin console input
cout console output
cprn standard printer
cerr Standard error output
clog standard log
caux standard auxiliary.
;g Source Stream tks Program dks Data Provide djrk gSa mls Input Stream dgk tkr
gSa rFkk destination Stream tks program ds Output dks recive djrh gSa Output Stream
dgykrh gSaA
Input Stream
INPUT
DEVICE extraction from
input stream
PROGRAM
Insertion into
Output Stream output stream
OUTPUT
DEVICE
Pointer
istream streambuf ostream
Output
iostream
istream-withassign ostream-withassign
iostream-withassign
- 82 –
elars ios }kjk gh basic formatted o Unformatted I/O operations dks Support fd;k tkrk
gSaA Class istream formatted o Unformatted input facility dks Provide fd;k tkrk gSa
rFkk Ostream }kjk Formatted output facility dks Provide fd;k tkrk gSaA
iostream (i) ;g ios dh istream rFkk ostream nksuks properties dks multiple
Inheritance ds }kjk inherit fd;k tkrk gSaA
streambuf (i) Buffers ds }kjk Physical interface dks provide fd;k tkrk gSaA
(ii) Filebut class dk base gSaA
Width( ) Field Size dks Specify djus o Output Value dks display djus ds fy;s
vko';d gSaA
Precision( ) Float value esa decimal point ds ckn fdrus No. of digit dks specify fd;k
tk,A
fill( ) Field ds unused portion fdl character ls specify fd;k tk,A
setf( ) Output display dks control djus ds fy;s format flag dks specify djukA
unsetf( ) specific flag dks clear djus ds fy;sA
Manipulators Special function gSa ftls I/O Statements dks alter djus o Stream parameters
dks format djus ds fy;s Use esa fy;k tkrk gSaA bu Manipulators dh access djus ds
fy;s iomanip.h dks Program esa Include fd;k tkrk gSaA
- 83 –
Manipulators: - ios function
setw( ) width( )
setprecision( ) precision( )
setfill( ) fill( )
setioflags( ) set( )
resetiosflags( ) unsetf( )
bu manipulators ds vykok User }kjk Lo;a ds manipulators Hkh create fd;s tk ldrs
gSaA
Width( ): - Width( ) function dks vko';d field width dks define djus ds fy;s use esa
fy;k tkrk gSaA D;ksafd ;g ,d member function gSa vr% bls object }kjk invoke fd;k
tkrk gSa% &
cout.width(w);
;gk¡ w field width gSaA Output dks right hand side esa print fd;k tkrk gSaA width( )
function flQZ ,d item ds fy;s field width dks specify fd;k tkrk gSaA
cout.width(7);
cout<<3233;
Output: -
. . . 3 2 3 3
if cout.width(7);
cout<<3233<<12;
. . . 3 2 3 3 1 2
vr% gj Item ds fy;s field width dks separately specify fd;k tkuk pkfg,A
;fn field width fd;s x;s number ls NksVh gS rks size of the value dks print fd;k tkrk
gSa tSls% &
cout.width(2);
cout<<7770;
Output: -
7 7 7 0
#include <iostream.h>
void main( )
{
cout.width(3);
cout.<<1<<endl;
cout.width(7);
cout<<223<<16<<endl;
cout.width(3);
cout.6060<<endl;
}
precision( ): - floating numbers dks decimal point ds ckn 6 digits rd print fd;k tkrk
gSaA user }kjk Hkh floating point numbers dks Specify fd;k tk ldrk gSaA blds fy,
member function precision( ) dks use esa fy;k tkrk gSaA
cout.precision(d)
;gka d number of digit dks iznf'kZr djrk gSaA ftldk decimal ds ckn show djuk
gSaA
Example: - cout.precision(3);
cout.sqrt(2);
mijksDr Example esa decimal ds ckn 3 numbers dks Show fd;k tk;sxk
- 84 –
;fn 1 ckj precision dks set dj fn;k x;k gS rks og lHkh ij implement gksrk gSaA tSls
Example: - cout.precision(3);
cout.sqrt(2);
cout<<3.14237<<endl;
cout<<2.22370<<endl;
width dh rjg precision dh setting dks ckj&ckj change djuk ugha iM+rk gSaA
precision dks vyx&vyx values ij vyx&vyx set fd;k tk ldrk gSaA tSls%&
cout.precision(3);
cout<<3.14732<<endl;
cout.precision(5);
cout<<7.456021<<endl;
precision setting ds lkFk field specification dks Hkh combine fd;k tkrk gSaA tSls% &
cout.precision(2);
cout.width(5);
cout<<1.23456<<endl;
igys 2 Statements dks fuEu izdkj instruct fd;k tkrk gSaA print 2 digit after the
decimal point in a field of 5 character width vr% output
Example: - #include <iostream.h>
void main( )
{
cout.width(3);
cout.precision(2);
cout<<1.7692<<endl;
cout.width(7);
cout.precision(3);
cout<<2.7677<<endl;
}
Precision ds fy, fuEu ckrksa dks considered fd;k tkrk gSaA
(1) output round off gksdj iznf'kZr gksrk gSaA tSls% &
cout.precision(2);
cout<<1.767<<endl;
output1.77
(2) ;fn decimal point ds ckn 0 vk jgk gS rks mls automatically gVk fn;k tkrk
gSaA tSls% &
cout.precision(2);
cout<<1.200<endl;
output
(3) Precision dks ,d ckj set dj nsus ds ckn ckj&ckj set djus dh vko';drk ugha
gksrh gSaA
(4) default precision 6 digit dk gksrk gSaA
fill( )
tc fdlh Hkh value dks print djus ds fy, tc field width dks number ls T;knk define dj
fn;k tkrk gSa rks unused position dks white space }kjk fill dj fn;k tkrk gSaA fill
function dks unused position ij fdlh Hkh character dks Mkyus ds fy, use esa fy;k
tkrk gSaA fill dks fuEu izdkj use esa ysrs gSaA
cout.fill('*');
cout.width(10);
cout<<620<<endl;
- 85 –
mijksDr statements dk output fuEu izdkj ls gksxk
* * * * * * * 6 2 0
#include <iostream.h>
void main( )
{
cout.fill('<');
cout.precision(3);
for(int i = 1; i< = 6; i++)
{
cout.width(5);
cout<<i;
cout<<1.0 / float (i) <<endl;
if (i == 3)
cout.fill('>');
}
}
setf( )
Function width dks tc use esa fy;k tkrk gSa rks number automatically right justify gks
tkrk gSa ij ;fn number dks left justification nsuk gks rks blds setf( ) function dks use
esa fy;k tkrk gSaA setf( ) ios class dk Member function gSa tks formatting provide
djokrk gSa setf( ) function dks fuEu izdkj use esa fy;k tk ldrk gSaA
cout.setf(arg1, arg2);
arg1 ,d formatting flag gSa ftlls ios class esa define fd;k x;k gSa formatting flag
ds }kjk output ij vko';d format action dks apply fd;k tkrk gSaA arg2 dks bit field
dgk tkrk gSa tks formatting flag dks iznf'kZr djrk gSaA setf( ) function ds fy, flag
o bit fields fuEu izdkj gSaA
- 86 –
}
output
C + + * * * * * * * * * * * *
Example: -
#include <iostream.h>
void main( )
{
cout.fill('*');
cout.precision(3);
cout.setf(ios :: internal, ios :: adjustfield);
cout.setf(ios :: scientific, ios :: floatfield);
cout.width(10);
cout<<-11.45798<<endl;
}
Output
Output
- 87 –
ios :: uppercase Use uppercase letters for hex output
ios :: skipus Skip white space on input
ios :: unitbuf Flush all streams after insertion
ios :: stdio Flush stdout and stderr after insertion
setf( ) dks Use esa ysrs le; fuEu ckrksa dk /;ku j[kuk pkfg,
(1) Flags tc setf( ) ds }kjk set fd;s tkrs gSa rks os rc rd effective jgrs gSa tc rd
mUgsa reset ;k unset u dj fn;k tk;sA
(2) Program esa Format flags dks fdruh ckj Hkh Reset fd;k tk ldrk gSaA
(3) ,d ls T;knk format control dks output value ij apply fd;k tk ldrk gSaA
(4) setf( ) specific flags dks set dj nsrk gSa vkSj ckdh dks unchanged j[krk gSaA
Example: - cout<<setw(10)<<123;
mijksDr Example ls 123 Right Justified Form esa print gksxkA
nks ;k nks ls vf/kd values ds output format dks ,d statement esa Hkh iznf'kZr fd;k
tk ldrk gSaA
Example: - cout<<setw(5)<<setprecision(2)<<1.769
<<setw(10)<<setprecision(4)<<sqrt(4)
<<setw(15)<<setiosflags(ios :: scientific)<<sqrt(3);
cout<<endl;
bl mijksDr example ds }kjk 5, 10, 15 field width dks specify fd;k tkrk gSaA
Manipulators rFkk iosfunction dks fdlh Hkh program esa lkFk&lkFk use esa fy;k tk
ldrk gSaA tSls% &
cout.setf(ios :: showpoint);
cout.setf(ios :: showpos);
cout<<setiosflags(ios :: scientific);
cout<<setw(10)<<-1.635<<endl;
- 88 –
ios member function rFkk Manipulator esa main difference ;g gSa fd ios member
function previous format dks return djrs gSaA ysfdu manipulators dks Previous format
state dks return ugha djrs gSaA
Example: - cout.precision(2);
int p = cout.precision(4);
tc bl statement dks execute djrs gSa rks p esa 2 value vk;sxh D;ksafd ;g previous
state vkSj New format state 4 gksxhA
Example: -
#include <iostream.h>
void main( )
{
cout.setf(ios :: showpoints);
cout<<setw(5)<<"N"
<<setw(15)<<"inwards"
<<setw(15)<< "sum";
}
- 89 –