Phương thức tĩnh

Một phần của tài liệu Chương 4C++ và lập trình hướng đối tượngTrong chương này trình bầy các pdf (Trang 65 - 67)

+ Có 2 cách viết phương thức tĩnh:

Cách 1: Dùng từ khoá static đặt trước định nghĩa phương thức viết bên trong định nghĩa lớp (như phương

thưc in() ví dụ cuối của mục 9.1).

Cách 2: Nếu phương thức xây dựng bên ngoài định nghĩa lớp, thì dùng từ khoá static đặt trước khai báo

phương thức bên trong định nghĩa lớp. Chú ý không cho phép dùng từ khoá static đặt trước định nghĩa phương thức viết bên ngoài định nghĩa lóp.

+ Phương thức tĩnh là chung cho cả lớp, nó không lệ thuộc vào một đối tượng cụ thể, nó tồn tại ngay khi lớp chưa có đối tượng nào (xem ví dụ trong mục 9.1).

+ Lời gọi phương thức tĩnh:

Có thể dùng tên lớp

Ví dụ xét lớp HDBH trong mục 9.1 và xét các câu lênh: HDBH u, v;

Khi đó để gọi phương thức tĩnh in() có thể dùng một trong các lệnh sau: u.in();

v.in(); HDBH::in();

+ Vì phương thức tĩnh là độc lập với các đối tượng, nên không thể dùng phương thức tĩnh để xử lý dữ liệu của các đối tượng chủ thể trong lời gọi phương thức tĩnh. Nói cách khác không cho phép truy nhập tới các thuộc tính (trư thuộc tính tĩnh) trong thân phương thức tĩnh. Điều đó cũng đồng nghĩa với việc không cho phép dùng con trỏ this trong phương thức tĩnh.

Ví dụ nếu lập phương thức tĩnh in() để in các thuộc tính của lớp HDBH như sau: class HDBH { private: int shd ; char *tenhang ; double tienban ; static int tshd ;

static double tstienban ; public:

static void in() {

cout <<"\n" << tshd;

cout <<"\n" << tstienban; cout <<"\n" << tenhang; 210

cout <<"\n" << tienban; }

} ;

thì sẽ bị lỗi, vì trong thân phương thức tĩnh không cho phép truy nhập đến các thuộc tính tenhang và tienban.

Một phần của tài liệu Chương 4C++ và lập trình hướng đối tượngTrong chương này trình bầy các pdf (Trang 65 - 67)

Tải bản đầy đủ (PDF)

(94 trang)