+ 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.