1. Trang chủ
  2. » Cao đẳng - Đại học

Lập trình hướng đối tượng: Overloading

7 6 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 248,75 KB

Nội dung

[r]

(1)

TÁI Đ NH NGHĨAỊ

TÁI Đ NH NGHĨAỊ

(OVERLOADING)

(OVERLOADING)

B môn H Th ng Máy Tính Truy n Thơngộ ệ ố ề

Khoa Công Ngh Thông Tin Truy n Thôngệ ề

(2)

N i dung N i dung

 Tái đ nh nghĩa hàm.ị  Tái đ nh nghĩa toán t ị ử  Chuy n đ i ki u.ể ổ ể

 Tái đ nh nghĩa toán t xu t (<<)– nh p (>>)ị ử ấ ậ  Tái đ nh nghĩa toán t [], toán t ()ị ử ử

 Kh i t o ng m đ nh - Gán ng m đ nh.ở ạ ầ ị ầ ị  Tái đ nh nghĩa toán t ++ ị ử

(3)

Tái đ nh nghĩa hàm Tái đ nh nghĩa hàm

 Đ nh nghĩa hàm tênị  Đ i s ph i khác nhau:ố ố ả

class TimeTime { //

long GetTime (void); // s giây tính t n a đêmố

void GetTime (int &hours, int &minutes, int &seconds); };

 S lố ượng  Th tứ ự

 Ki uể

 Có th dùng đ i s m c đ nh.ể ố ố ặ ị

void main() { int h, m, s;

long t = GetTime(); // G i hàm ???

GetTime(h, m, s); // G i hàm ???

(4)

Tái đ nh nghĩa toán t Tái đ nh nghĩa toán t

 Đ nh nghĩa phép toán đ i tị ố ượng.  Các phép tốn có th tái đ nh nghĩa:ể ị

Đ n ơ h ng

+ ­ * ! ~ & ++ ­­ () ­> ­>* new delete

Nh h ng

+ ­ * / % & | ^ << >> = += ­= /= %= &= |= ^= <<= >>=

== != < > <= >= && || [] () ,

 Các phép tốn khơng th tái đ nh nghĩa:ể ị

(5)

Tái đ nh nghĩa toán t (tt) Tái đ nh nghĩa toán t (tt)

B ng hàm thành viên :

class PointPoint { public:

Point (int x, int y) { Point::x = x; Point::y = y; }

Point operator + (Point &p) { return Point(x + p.x,y + p.y); } Point operator - (Point &p) { return Point(x - p.x, y - p.y); } private:

int x, y; };

void main() {

Point p1(10,20), p2(10,20);

Point p3 = p1 + p2; Point p4 = p1 - p2;

Point p5 = p3.operator + (p4); Point p6 = p3.operator – (p4); };

Có tham số

(6)

Tái đ nh nghĩa toán t ++ & Tái đ nh nghĩa toán t ++ &

 Toán t ++ (ho c toán t ) có lo i:ử ặ ử ạ

 Ti n t : ề ố ++n  H u t : ậ ố n++

class PhanSoPhanSo {

int tuso, mau so; public:

// …

PhanSo(int=0 , int =1);

friend PhanSo operator ++ (PhanSo&); friend PhanSo operator ++ (PhanSo&, int);

};

PhanSo operator ++ (PhanSo& p) {

return (p = PhanSo(tuso+mauso, mauso)); }

PhanSo operator ++ (PhanSo& p, int x) {

PhanSo p2 = PhanSo(tuso+mauso, mauso); return p2;

void main() {

PhanSo p1(3,4), p2; cout<< p1++;

cout<<++p2;

cout<<++(p1++) + (++p2)++; }

K t qu ế ả

(7)

Tái đ nh nghĩa new & delete Tái đ nh nghĩa new & delete

 Hàm new delete m c đ nh c a ngôn ng :ặ ị ủ ữ

 N u đ i tế ố ượng kích thước nh , có th s gây ỏ ể ẽ

nhi u kh i nh => ch m.ề ố ỏ ậ

 Không đáng k đ i tể ố ượng có kích thướ ớc l n.

=> Tốn t new delete đử ược tái đ nh nghĩa.ị

 Đ nh nghĩa theo d ng hàm thành viên:ị ạ

class PointPoint { public: //

void* operator new (size_t bytes);

void operator delete (void *ptr, size_t bytes); private:

int xVal, yVal;

void main() {

Point *p = new Point(10,20); Point *ds = new Point[30]; //………

Ngày đăng: 09/03/2021, 05:33