summaryrefslogtreecommitdiff
path: root/sem_6/HLIN603/ocaml/TP2/ex2.caml
blob: 21779aff166d3707fc42d1a99653c232a79d7fbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class account b =
object (self)
	val mutable balance = 0.0
	method get = balance
	method deposit a = balance<-balance +. a
	method withdraw a = balance <- balance -. a
	method print = print_float balance; print_newline()
	initializer self#deposit b
end;;
class interest_account b =
object
	inherit account b
	method interest = balance <- balance +. 5. *. balance /. 100.
end;;
class secure_account b =
object
	inherit account b as super
	method withdraw a = if (balance -. a)>=0. then super#withdraw a else failwith "T'as pas l'flouze gros!"
end;;
class bank =
	method