Latest web development tutorials

anggota statis dari C ++ kelas

C ++ Kelas & Objek C ++ Kelas & Objek

Kita dapat menggunakan kata kuncistatis untuk anggota kelas didefinisikan sebagai statis.Ketika kita mendeklarasikan anggota dari kelas yang statis, yang berarti bahwa tidak peduli berapa banyak kelas objek yang dibuat, anggota statis hanya memiliki satu salinan.

anggota statis di semua kelas objek bersama. Jika pernyataan lainnya inisialisasi tidak ada bila objek pertama dibuat, semua data statis akan diinisialisasi ke nol. Kita tidak bisa mengambil tempat dalam definisi anggota statis kelas, tapi kelas dapat diselesaikan secara eksternal dengan menggunakan operator kisaran:: untuk kembali mendeklarasikan-variabel statis sehingga diinisialisasi, seperti yang ditunjukkan dalam contoh berikut.

Contoh berikut membantu untuk lebih memahami konsep anggota data statis:

#include <iostream>
 
using namespace std;

class Box
{
   public:
      static int objectCount;
      // 构造函数定义
      Box(double l=2.0, double b=2.0, double h=2.0)
      {
         cout <<"Constructor called." << endl;
         length = l;
         breadth = b;
         height = h;
         // 每次创建对象时增加 1
         objectCount++;
      }
      double Volume()
      {
         return length * breadth * height;
      }
   private:
      double length;     // 长度
      double breadth;    // 宽度
      double height;     // 高度
};

// 初始化类 Box 的静态成员
int Box::objectCount = 0;

int main(void)
{
   Box Box1(3.3, 1.2, 1.5);    // 声明 box1
   Box Box2(8.5, 6.0, 2.0);    // 声明 box2

   // 输出对象的总数
   cout << "Total objects: " << Box::objectCount << endl;

   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

Constructor called.
Constructor called.
Total objects: 2

fungsi anggota statis

Jika fungsi tersebut dinyatakan sebagai anggota statis, Anda dapat menempatkan setiap kelas tertentu dari fungsi objek dan membuka independen. Bahkan statis fungsi anggota juga dapat dipanggil dalam kasus objek kelas tidak ada, asalkanfungsi statis menggunakan nama kelas ditambah operator resolusi lingkup ::untuk mengakses.

Statis fungsi anggota hanya dapat mengakses anggota data statis, tidak dapat mengakses fungsi-fungsi lainnya dan fungsi anggota statis lain di luar kelas.

Statis fungsi anggota memiliki berbagai kelas, mereka tidak dapat mengakses jenis pointer. Anda dapat menggunakan fungsi anggota statis untuk menentukan apakah suatu kelas objek tertentu telah dibuat.

Contoh berikut membantu untuk lebih memahami konsep fungsi anggota statis:

#include <iostream>
 
using namespace std;

class Box
{
   public:
      static int objectCount;
      // 构造函数定义
      Box(double l=2.0, double b=2.0, double h=2.0)
      {
         cout <<"Constructor called." << endl;
         length = l;
         breadth = b;
         height = h;
         // 每次创建对象时增加 1
         objectCount++;
      }
      double Volume()
      {
         return length * breadth * height;
      }
      static int getCount()
      {
         return objectCount;
      }
   private:
      double length;     // 长度
      double breadth;    // 宽度
      double height;     // 高度
};

// 初始化类 Box 的静态成员
int Box::objectCount = 0;

int main(void)
{
  
   // 在创建对象之前输出对象的总数
   cout << "Inital Stage Count: " << Box::getCount() << endl;

   Box Box1(3.3, 1.2, 1.5);    // 声明 box1
   Box Box2(8.5, 6.0, 2.0);    // 声明 box2

   // 在创建对象之后输出对象的总数
   cout << "Final Stage Count: " << Box::getCount() << endl;

   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

Inital Stage Count: 0
Constructor called.
Constructor called.
Final Stage Count: 2

C ++ Kelas & Objek C ++ Kelas & Objek