Computer >> Máy Tính >  >> Lập trình >> C ++

Định nghĩa các thành viên tĩnh trong C ++


Các thành viên tĩnh trong một lớp trong C ++ có thể được định nghĩa bằng cách sử dụng từ khóa static. Chỉ có một bản sao của thành viên lớp tĩnh trong bộ nhớ, bất kể số lượng đối tượng của lớp. Vì vậy, thành viên tĩnh được chia sẻ bởi tất cả các đối tượng lớp.

Thành viên lớp tĩnh được khởi tạo bằng 0 khi đối tượng đầu tiên của lớp được tạo nếu nó không được khởi tạo theo bất kỳ cách nào khác.

Một chương trình thể hiện định nghĩa của các thành viên lớp tĩnh được đưa ra như sau -

Ví dụ

#include <iostream>
using namespace std;

class Point{
   int x;
   int y;

   public:
   static int count;

   Point(int x1, int y1){
      x = x1;
      y = y1;

      count++;
   }

   void display(){
      cout<<"The point is ("<<x<<","<<y<<")\n";
   }
};

int Point::count = 0;

int main(void){
   Point p1(10,5);
   Point p2(7,9);
   Point p3(1,2);

   p1.display();
   p2.display();
   p3.display();

   cout<<"\nThe number of objects are: "<<Point::count;

   return 0;
}

Kết quả của chương trình trên như sau -

The point is (10,5)
The point is (7,9)
The point is (1,2)

The number of objects are: 3

Bây giờ chúng ta hãy hiểu chương trình trên.

Lớp Point có 2 thành viên dữ liệu x và y tạo thành một điểm. Ngoài ra còn có một số thành viên tĩnh giám sát số lượng các đối tượng được tạo ra của lớp Point. Hàm tạo Point () khởi tạo các giá trị của x và y và hàm display () hiển thị các giá trị của chúng. Đoạn mã hiển thị điều này như sau -

class Point{
   int x;
   int y;

   public:
   static int count;

   Point(int x1, int y1){
      x = x1;
      y = y1;

      count++;
   }

   void display(){
      cout<<"The point is ("<<x<<","<<y<<")\n";
   }
};

Trong hàm main (), có 3 đối tượng được tạo của lớp Point. Sau đó, giá trị của các đối tượng này được hiển thị bằng cách gọi hàm display (). Sau đó, giá trị của số đếm được hiển thị. Đoạn mã hiển thị điều này như sau -

Point p1(10,5);
Point p2(7,9);
Point p3(1,2);

p1.display();
p2.display();
p3.display();

cout<<"\nThe number of objects are: "<<Point::count;