08. c++ - classes and objects

Upload: song-nguyen

Post on 11-Jul-2015

73 views

Category:

Documents


0 download

TRANSCRIPT

C bn v C++

1

EE3490: K thut lp trnh HK1 2011/2012 o Trung Kin H Bch khoa H Ni

S lc v C++

B sung cc tnh nng mi so vi C:

Hng i tng (OOP)

Lp trnh khi qut (template) Nhiu thay i nh khcFile m ngun thng dng ui .cpp Hm main() c th c kiu tr v l void: void main() { } Dng // ch thch n ht dng: dien_tich = PI*r*r; // PI = 3.14 C sn kiu bool v cc gi tr false, true: bool b1 = true, b2 = false;

Mt s thay i nh:

Bin, hng trong C++ c th c khai bo bt k u trong hm (khng gii hn u hm nh C), k c trong vng lp for Php chuyn kiu c th vit nh c php gi hm: int(5.32) Khng cn thm cc t kho enum, struct, union khi khai bo binEE3490: K thut lp trnh HK1 2011/2012 o Trung Kin H Bch khoa H Ni

2

Vi khi nim mi t nh hn

Kiu tham chiu (reference) : c bn cht con tr

int a = 5; int& b = a; b = 10; // a int& foo(int& x) { x = 2; return int y = 1; foo(y); foo(y) = 3;namespace ABC { int x; int setX(int y) }

= 10 x; } // y = 2 // y = 3

Namespace

{ x = y; }

ABC::setX(20); int z = ABC::x;using namespace ABC; setX(40);3EE3490: K thut lp trnh HK1 2011/2012 o Trung Kin H Bch khoa H Ni

Vi khi nim mi t nh hn (tip)

Cp pht b nh ng Dng ton t new cp pht

int* a = new int; float* b = new float(5.23); long* c = new long[5];delete a; delete[] c;

Ton t delete hu

Ch : khng c dng ln ln malloc()/free() vi new/delete:

Cp pht bng malloc() th phi dng free() hu Cp pht bng new th phi dng delete huint sum(int a, int b) {...} int sum(int a, int b, int c) double sum(double a, double b) double sum(double a, double b, double c)

nh ngha chng hm (hm cng tn, khc tham s):

{...} {...} {...}

4

X l ngoi l try ... catch: t tm hiu thm

EE3490: K thut lp trnh HK1 2011/2012 o Trung Kin H Bch khoa H Ni

Chng trnh C++ u tin

Chng trnh v d:

#include using namespace std; void main() { int n; cout > n; cout