chuong 08 - mot so van de khac.pdf
TRANSCRIPT
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
1/64
CHNG 8.MT S VN KHC
ThS. Trn Anh Dng
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
2/64
Khun mu (Template)
05/12/2014 Lp trnh hng i tng 2
Lp trnh tng qut1
Lp trnh tng qut trong C++2
C++ template3
Khun mu hm4
Khun mu lp5
5
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
3/64
Gii thiu
V dxt hm hon vnhsau:
Nu ta mun thc hin cng vic tng t chomtkiudliukhc, chnghnfloat?
05/12/2014 Lp trnh hng i tng 3
voidswap ( int&a, int&b){
inttemp;
temp = a; a = b; b = temp;
}
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
4/64
Gii thiu
V dkhc: Ta nhnghamt lpbiudincu
trc ngnxpcho kiuint
05/12/2014 Lp trnh hng i tng 4
classStack {
public:
Stack();
~Stack();
voidpush ( constint&i);
voidpop ( int&i);
boolisEmpty() const;
//...
};
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
5/64
Gii thiu
Khai bo v nhnghacaStack ph thuc ti
mtmcno vo kiudliuint.
Mtsphngthclytham sv trvkiuint
Nu ta mun tongnxpcho mtkiud liukhc
th sao?
Ta c nn nhngha lihon ton lpStack (ktqu
stora nhiulpchnghnIntStack, FloatStack,)
hay khng?
05/12/2014 Lp trnh hng i tng 5
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
6/64
Lp trnh tng qut
Lptrnh tngqut l phngphp lptrnh c
lpvichi titbiudindliu.
T tng l ta nh ngha mt khi nim khng ph
thucmtbiudinc thno, v sau mich ra
kiudliuthch hplm tham s.
Nhvytrong mtstrnghp,achi titv
kiudliuvo trong nhnghahm hoclpl
iukhng c li.
05/12/2014 Lp trnh hng i tng 6
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
7/64
Lp trnh tng qut trong C
Sdngtrnh tinxl caC
Trnh tinxl thchinthay thtext trckhi dch
Do ,ta c thdng #define chra kiudliuv
thay itichkhi cn.
05/12/2014 Lp trnh hng i tng 7
#define TYPE int
voidswap(TYPE& a, TYPE& b) {
TYPEtemp;
temp = a; a = b; b = temp;
}
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
8/64
Lp trnh tng qut trong C
Sdngtrnh tinxl caC
Nhm chn v dli
Chcho php ngmtnhngha trong mtchng
trnh.
05/12/2014 Lp trnh hng i tng 8
#define TYPE int
voidswap(TYPE& a, TYPE& b) {
TYPEtemp;
temp = a; a = b; b = temp;}
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
9/64
C++ Template
Template (khun mu)l mtcchthay thcho
php tocc cutrc m khng phichr kiu
dliungay tu.
Tkha template cdng trong C++ bo
cho trnh bin dchbitrngonm theo sau sthao tc mt hoc nhiu kiu d liu cha xc
nh
05/12/2014 Lp trnh hng i tng 9
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
10/64
C++ Template
T kha template c theo sau bi mt cp
ngocnhncha tn cacc kiud liu ty
ccung cp.
template
template
Mt lnh template ch c hiu qu i vi khai
bo ngay sau n
05/12/2014 Lp trnh hng i tng 10
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
11/64
C++ Template
Hai loikhun mucbn:
Function templatekhun muhm cho php
nh ngha cc hm tng qut dng n cc
kiudliuty .
Class template khun mu lp cho php
nh ngha cc lp tng qut dng n cckiudliuty .
05/12/2014 Lp trnh hng i tng 11
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
12/64
Khun mu hm
Khun mu hm l dng khun mu n gin
nht cho php ta nhngha cc hm dng n
cc kiudliuty .
V d sau nh ngha hm swap() bng khun
mu:
05/12/2014 Lp trnh hng i tng 12
template
voidswap(T & a, T & b) {T temp;
temp = a; a = b; b = temp;
}
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
13/64
Khun mu hm
Thc cht, khi s dng template, ta nh
nghamt tpv hncc hm chngnhau vi
tn swap()
gi mt trong cc phin bn ny, ta ch cn
gin vikiudliutngng
05/12/2014 Lp trnh hng i tng 13
intx = 1, y = 2;floata = 1.1, b = 2.2;
swap(x, y); //Gi hm swap() vi kiu int
swap(a, b); //Gi hm swap() vi kiu float
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
14/64
Khun mu hm
Chuyng xyra khi ta bin dchm?
Trcht,sthay th"T" trong khai bo/nh
ngha hm swap() khng phi thay th text
n gin v cng khng c thc hin bi
trnh tinxl.
Vicchuynphin bnmucaswap() thnhcc ci t c th cho int v float c thc
hinbitrnh bin dch.
05/12/2014 Lp trnh hng i tng 14
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
15/64
Khun mu hm
Hy xem xt hot ng ca trnh bin dch khi
gpligiswap() thnht(vihai tham sint)
Trcht,trnh bin dchtm xem c mthm
swap() c khai bo vi 2 tham s kiu int
hay khng? khng tm thynhng tm thy
mttemplate c thdng c.
05/12/2014 Lp trnh hng i tng 15
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
16/64
Khun mu hm
Tip theo, n xem xt khai bo ca template
swap()xem c thkhpcviligihm
hay khng?
Ligihm cung cphai tham sthuccng mtkiu
dliu(int)
Trnh bin dchthytemplate chra hai tham sthuc
cng kiuT, nn n ktlunrngT phil kiuint
Do ,trnh bin dchktlunrngtemplate khpvi
ligihm
05/12/2014 Lp trnh hng i tng 16
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
17/64
Khun mu hm
Khi xc nh c template khp vi ligi
hm, trnh bin dch kim tra xem c mt
phin bn ca swap() vi hai tham s kiu int
csinh ra ttemplate hay cha?
Nu c, ligic lin kt (bind) viphin bn
csinh ra
Nu khng, trnh bin dch s sinh mt ci t ca
swap() lyhai tham skiuint - v lin ktligihm
viphin bnvasinh.
05/12/2014 Lp trnh hng i tng 17
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
18/64
Khun mu hm
Nh vy, n cui quy trnh bin dch on m
trong v d,sc hai phin bncaswap() c
tovicc ligihm ca ta c lin ktvi
phin bnthch hp.
Chi ph v thi gian bin dch i vi vic s dng
template?
Chi ph v khng gian lin quan n mi ci tca
swap() ctotrong khi bin dch?
05/12/2014 Lp trnh hng i tng 18
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
19/64
Khun mu lp
Tngtvikhun muhm vitham sthuc
cc kiu ty , ta cng c thnhngha khun
mu lp (class template) s dng cc th hin
camthocnhiukiudliuty .
Vickhai bo mtkhun mulpcngtngt
vikhun muhm
05/12/2014 Lp trnh hng i tng 19
template classClassName {
definition
}
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
20/64
Khun mu lp
V d: ta stomtcutrc cpigimtcp
gi trthuckiuty .
Trcht,xt khai bo Pair cho mtcpgi tr
kiuint nhsau:
05/12/2014 Lp trnh hng i tng 20
struct Pair {
intfirst;intsecond;
};
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
21/64
Khun mu lp
Ta c th sa khai bo trn thnh mt khun
mulykiuty :
Tuy nhin hai thnh vin first v second phi
thuccng kiu
05/12/2014 Lp trnh hng i tng 21
template
structPair {
T first;
T second;
};
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
22/64
Khun mu lp
Ta c thcho php hai thnh vin nhncc kiu
dliukhc nhau:
05/12/2014 Lp trnh hng i tng 22
template
structPair {
T first;
U second;
};
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
23/64
Khun mu lp
to cc th hin ca template Pair, ta phi
dng k hiu cp ngoc nhn (khc vi khun
muhm)
05/12/2014 Lp trnh hng i tng 23
Pair p; // Khng c
Pair q; // Creates a pair of ints
Pair r; // Creates a pair with an int and
a float
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
24/64
Khun mu lp
Khi thit k khun mu (cho lp hoc hm),
thng thng, ta nn to mt phin bn c th
trc, sau michuynn thnh mttemplate.
V d,ta sbtubngvicci thon chnh
Stack cho snguyn.
iu cho php pht hin cc vnvkhinim trc khi chuyn thnh phin bn cho s
dngtngqut.
05/12/2014 Lp trnh hng i tng 24
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
25/64
Khun mu lp V d
V d: Xt lpStack visnguyn
05/12/2014 Lp trnh hng i tng 25
class Stack {
private:
static const int max = 10;
intcontents[max], current;
public:
Stack(); ~Stack();
voidpush(const int& i);
voidpop(int& i);
boolisEmpty() const;
boolisFull() const;
};
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
26/64
Khun mu lp V d
05/12/2014 Lp trnh hng i tng 26
Stack::Stack() { this->current = 0; }
Stack::~Stack() {}
voidStack::push(const int& i) {
if (this->current < this->max) this->contents[this->current++] = i;
}
voidStack::pop(int& i) {
if(this->current > 0) i = this->contents[--this->current];
}
boolStack::isEmpty() const{ return(this->current == 0;) }
boolStack::isFull() const{
return(this->current == this->max);
}
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
27/64
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
28/64
Khun mu lp V d
05/12/2014 Lp trnh hng i tng 28
template
Stack::Stack() {
this->current = 0;
}
template
Stack::~Stack() { }
template
voidStack::push(constT& i)
{
if(this->current < this->max)
this->contents[this->current++] = i;
}
Miphngthccnmtlnhtemplate ttrc
Mikhi dng ton tphmvi, cn mt k hiu ngocnhnkm theo tn kiu.Ta angnhnghamtlpStack, ch khng
phinhnghalpStack
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
29/64
Khun mu lp V d
05/12/2014 Lp trnh hng i tng 29
template
voidStack::pop(T& i) {
if(this->current > 0)
i = this->contents[--this->current];
}
template
boolStack::isEmpty() const{
return(this->current == 0;)
}
template
boolStack::isFull() const{
return(this->current == this->max);
}
Thay th kiu ca i tng
c lu trong ngn xp (trcl int) bngkiuty T
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
30/64
Khun mu lp V d
05/12/2014 Lp trnh hng i tng 30
intx = 5,
charc = 'a',
Stack s
Stack t
s.push(x);
t.push(c);s.pop(y);
t.pop(d);
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
31/64
Cc tham s khun mu khc
Phn trc chng ta ch mi ni n cc lnh
template vitham sthuc"kiu"class.
Tuy nhin, chng ta c thsdngcc tham s
kiuv tham sbiuthctrong khun mulp
template
Stack s;
05/12/2014 Lp trnh hng i tng 31
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
32/64
Cc tham s khun mu khc
Trong ci tStack, ta c mthngmax quy nh
s lng ti a cc i tng m ngn xp c
thchami thhins c cng kch thc
ivimikiucaitngccha.
Ta khng munmiStack uc kch thc ti
a nh nhau C th thm mt tham s vo
lnh template ch ra mt s int (gi tr ny s
cdng xc nhgi trcho max)
05/12/2014 Lp trnh hng i tng 32
template
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
33/64
Cc tham s khun mu khc
05/12/2014 Lp trnh hng i tng 33
templateclassStack {
public:
Stack();
~Stack();voidpush(const T& i);
voidpop(T& i);
boolisEmpty() const;
boolisFull() const;
private:staticconstintmax = M;
Tcontents[max];
intcurrent;
};
Khai bo tham s mi
Sdngtham smi xc nh gi trmax ca mt lpthucmtkiuno
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
34/64
Cc tham s khun mu khc
05/12/2014 Lp trnh hng i tng 34
template
Stack::Stack() { this->current = 0; }
template
Stack::~Stack() {}
template
void Stack::push(constT& i) {
if (this->current max)
this->contents[this->current++] = i;
}
Sa cc lnhtemplate
Sa tn lpdng cho cc
ton tphmvi
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
35/64
Cc tham s khun mu khc
Gita c thtocc thhincacc lpStack
vicc kiudliuv kch thcadng
05/12/2014 Lp trnh hng i tng 35
Stack s;Stack t;
Stack u;
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
36/64
Ngoi l (Exception)
05/12/2014 Lp trnh hng i tng 36
Gii thiu1
Cch x l li truyn thng2
Ngoi l trong C++3
Kim sot ngoi l4
Lp ngoi l exception55
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
37/64
Gii thiu
Mi on chng trnh u tim n kh nng
sinh li
Lichquan: do lptrnh sai
Likhch quan: do dliu,do trngthi cahthng
Lic 2 loi?
Ngoi l (Exception): cc trnghphotngkhng bnh thng
05/12/2014 Lp trnh hng i tng 37
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
38/64
Cch x l li truyn thng
Ci tm xl tinipht sinh ra li
Lm cho chngtrnh trnn kh hiu
Khng philc no cngythng tin xl
Khng nhtthitphixl
Truyntrngthi ln mctrn
Thng qua tham s, gi tr tr li hoc bin tng th
(flag)
Dnhm
Kh hiu
05/12/2014 Lp trnh hng i tng 38
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
39/64
Cch x l li truyn thng
05/12/2014 Lp trnh hng i tng 39
intdevide(intnum, intdenom, int& error){
if(0 != denom){
error = 0;
return num/denom;
} else{
error = 1;
return0;}
}
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
40/64
Cch x l li truyn thng
Kh kimsot chtcc trnghp
Lishc
Libnh
Lptrnh vin thngqun khng xl li
Bnchtcon ngi
Thiukinh nghim,ctnh bqua
05/12/2014 Lp trnh hng i tng 40
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
41/64
C++ Exception
ExceptionNgoill cchthng bo v xl
ligiiquytccc vngpphitrn.
Tch cphnxl lira khiphnthutton
chnh.
Cho php mt hm c th thng bo v nhiu
loingoilC ch ngoi l mm do hn kiu x l li
truynthng
05/12/2014 Lp trnh hng i tng 41
C
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
42/64
Cc kiu ngoi l
Mtngoi l l mti tngcha thng tin v
mt li v cdng truyn thng tin ti
cpthcthi cao hn.
Ngoilc ththuckiudliubtkcaC++
C sn,chnghnint, char*,
Hockiungidng tnhngha(thngdng)
Cc lpngoiltrong thvin
05/12/2014 Lp trnh hng i tng 42
C h i l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
43/64
C ch ngoi l
Qu trnh truyn ngoi l t ng cnh thc thi
hin hnh ti mc thc thi cao hn gi l nm
mtngoil(throw an exception).
V tr trong m cahm ningoi lcnm c
gil imnm (throw point)
Khi mtngcnhthcthi tipnhnv truy nhp
mtngoi l,n c coi l btngoi l (catch
the exception)
05/12/2014 Lp trnh hng i tng 43
C h i l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
44/64
C ch ngoi l
Quy trnh gi hm v tr v trong trng hp
bnh thng:
05/12/2014 Lp trnh hng i tng 44
voidmain() {
intx, y;
cout > x >> y;
cout
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
45/64
C ch ngoi l
Quy trnh nm v btngoil:
05/12/2014 Lp trnh hng i tng 45
throws
exception
catches
exeption
C h l i l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
46/64
C php x l ngoi l
C ch x l ngoi l ca C++ c 3 tnh nng
chnh:
Khnng to v nm ngoi l (sdng tkho
throw)
Khnngbt v giiquytngoi l (sdng t
kho catch)
Khnngtch logic x l ngoi ltrong mthm
ra khiphncn licahm (sdngtkho try)
05/12/2014 Lp trnh hng i tng 46
N i l th
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
47/64
Nm ngoi l throw
nm mtngoil, ta dng tkha throw, km
theo itngm ta nhnm.
Ta c thdng mithlm ngoil,kcgi tr
thuckiuc sn.
05/12/2014 Lp trnh hng i tng 47
doubleMyDivide(doublenumerator, doubledenominator){
if(denominator == 0.0) {
throwstring(The denominator cannot be 0.);} else{
returnnumerator / denominator;
}
}
Ki t i l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
48/64
Kim sot ngoi l
Khitrycatch dng :
Tch phngiiquytlira khiphnc thsinh li
Quy nh cc loingoi lcbt timc thc thi
hinhnh
05/12/2014 Lp trnh hng i tng 48
try{
// Code that could generate an exception
}catch() {
// Code that resolves an exception of that type
};
Ki t i l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
49/64
Kim sot ngoi l
C thc nhiukhicatch, mikhicham
giiquytmtloingoilcth:
05/12/2014 Lp trnh hng i tng 49
try{// Code that could generate an exception
}catch() {
// Code that resolves a type1 exception}catch() {
// Code that resolves a type2 exception}catch() {
// Code that resolves a typeN exception};
Ki t i l V d
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
50/64
Kim sot ngoi l V d
05/12/2014 Lp trnh hng i tng 50
voidmain() {intx, y;
doubleresult;
cout > x >> y;try{
result = MyDivide(x, y);
cout
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
51/64
S kh i l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
52/64
So khp ngoi l
Khi mtngoilcnm ttrong mtkhitry,
hthngxl ngoilskimtra cc kiuc
litk trong khicatch theo thtlitk:
Khi tm thykiukhp,ngoilccoi l
cgiiquyt,khng cntiptctm kim.
Nukhng tm thy,mcthcthi hinhnh b
kt thc, ngoi l c chuyn ln mc cao
hn.
05/12/2014 Lp trnh hng i tng 52
S kh i l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
53/64
So khp ngoi l
Khi tm cc kiud liukhpvingoi l, trnh
bin dchni chung skhng thchinikiu
tng.
Nu mt ngoi l kiu float c nm, n s khng
khpvimtkhicatch cho ngoilkiuint
Mtitnghoctham chiukiudnxuts
khpvimtlnhcatch dnh cho kiucs
Numtngoi lkiuCarcnm, n skhpvi
mtkhicatch cho ngoilkiuMotorVehicle
05/12/2014 Lp trnh hng i tng 53
S kh i l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
54/64
So khp ngoi l
Vngpphi?
Mi ngoi l l i tng c sinh t cy
MotorVehicle s khp lnh catch u tin (cc
lnhcn liskhng bao gichy)
05/12/2014 Lp trnh hng i tng 54
try{//
}
catch(MotorVehicle& mv) {}
catch(Car& c) {}catch(Truck& t) {};
So khp ngoi l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
55/64
So khp ngoi l
Nu mun bt cc ngoi l dn xut tch khi
ngoi l c s, ta phi xp lnh catch cho lp
dnxutln trc:
05/12/2014 Lp trnh hng i tng 55
try{
//
}
catch(Car& c) {}catch(Truck& t) {}
catch(MotorVehicle& mv) {};
So khp ngoi l
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
56/64
So khp ngoi l
Nu ta mun bt tt c cc ngoi l c nm
(kccc ngoilta khng thgiiquyt)?
c mt lnh catch btcmingoi l, ta
tduba chmbn trong lnhcatch.
Ch nn s dng n cho lnh catch cui cng
trong mtkhitry-catch.
05/12/2014 Lp trnh hng i tng 56
catch(){
//
};
Lp exception
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
57/64
Lp exception
tch hphnnacc ngoi lvo ngn ngC++, lp exception c a vo th vin
chun.
Sdng#include v namespace std
Sdngthvinny, ta c thnm cc thhin
caexception hoctocc lpdnxutt.
Lpexception c mthm owhat(), c thnh
nghaliwhat() trvmtxu k t.
05/12/2014 Lp trnh hng i tng 57
Lp exception
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
58/64
Lp exception
Mtslpngoilchunkhc cdnxuttlpcsexception.
File header (cng thuc th vin
chunC++) chamtslpngoildnxutt
exception. Trong c hai lpquan trngc
dnxuttrctiptexception:
runtime_error
logic_error
05/12/2014 Lp trnh hng i tng 58
Lp exception
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
59/64
Lp exception
runtime_error: Cc li trong thi gian chy (ccli l kt qu ca cc tnh hung khng mong
i,chnghn: htbnh)
logic_error: Cc li trong logic chng trnh
(chnghntruyntham skhng hpl)
Thng thng,ta sdng cc lpny (hoccc
lp dn xut ca chng) thay v dng trc tip
exception
05/12/2014 Lp trnh hng i tng 59
Lp exception
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
60/64
Lp exception
runtime_errorc cc lpdnxutsau:range_error iukinsau (post-condition) bvi phm
overflow_error xyra trn shc
bad_alloc khng thcppht bnh
logic_errorc cc lpdnxutsau:
domain_error iu kin trc (pre-condition) b viphm
invalid_argument tham s khng hp l c truyncho hm
length_errortoitnglnhndi cho php
out_of_rangetham sngoi khong05/12/2014 Lp trnh hng i tng 60
Lp exception
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
61/64
Lp exception
Ta c thvitlihm MyDivide() sdngccngoilchuntngngnhsau:
05/12/2014 Lp trnh hng i tng 61
doubleMyDivide(doublenumerator, doubledenominator)
{if(denominator == 0.0) {
throwinvalid_argument(The denominator cannotbe 0.);
} else{returnnumerator / denominator;
}
}
Lp exception
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
62/64
Lp exception
05/12/2014 Lp trnh hng i tng 62
voidmain() {intx, y;doubleresult;
do{
cout > x >> y;
try{result = MyDivide(x, y);
cout
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
63/64
u im exception trong C++
DsdngDdng chuyniukhinnnic khnngxl
ngoil
C thnmnhiuloingoil
Tch xl ngoilkhithutton
Tch m xl
Sdngc php khcKhng bst ngoil(nmtng)
Chngtrnh dchn,an ton hn
05/12/2014 Lp trnh hng i tng 63
Q & A
-
7/21/2019 Chuong 08 - Mot so van de khac.pdf
64/64
Q & A