Wednesday, May 4, 2011

Từ khóa Static trong C++.

Từ khóa Static trong C++.
Keyword Static in C++.

Từ khóa Static là một trong những từ khóa được sử dụng phổ biến trong ngôn ngữ lập trình C++. Static được coi là một Specifier trong một biểu thức khai báo.
Xét trong một class, một static data member sẽ gắn liền với một class thay vì gắn liền với các object của class. Mỗi object của class sẽ điều khiển các thành phần non-static của riêng mình, trong khi đó tất cả sẽ cùng dùng chung static data member.
Lấy ví dụ sau:
  1. class Thing {
  2. public:
  3. Thing(int a, int b);
  4. ~Thing(); 
  5. void display() const ;
  6. static void showCount();
  7. private:
  8. int m_First, m_Second;
  9. static int sm_Count;
    };

Trong file implement của class Thing:
#include "static.h"
#include
int Thing::sm_Count = 0;

Thing::Thing(int a, int b)
: m_First(a), m_Second(b) {
++sm_Count;
}
 
Thing::~Thing() {
--sm_Count;
}
 
void Thing::display() const { 
using namespace std;
cout << m_First << "$$" << m_Second;
}

void Thing::showCount() {
using namespace std;
cout << "Count = " << sm_Count << endl;
}
Trong ví dụ trên ta thấy một số vấn đề sau:
1. Khai báo Static phải và chỉ được khai báo trong class declaration (header file)
2. Khởi tạo của Static member class phải được khởi tạo ngoài class declaration.

No comments:

Post a Comment