Kelas storan C++


Kelas storan mentakrifkan skop (keterlihatan) dan kitaran hayat pembolehubah/fungsi dalam program C++. Penentu ini diletakkan sebelum jenis yang mereka ubah suai. Kelas storan yang tersedia dalam program C++ disenaraikan di bawah:

  • auto

  • daftar

  • statik

  • luaran

  • boleh berubah

kelas storan automatik

kelas storanauto ialah kelas storan lalai untuk semua pembolehubah tempatan.

{
   int mount;
   auto int month;
}

Contoh di atas mentakrifkan dua pembolehubah dengan kelas storan yang sama Auto hanya boleh digunakan dalam fungsi, iaitu, auto hanya boleh mengubah suai pembolehubah setempat.

daftar kelas storan

daftar Kelas storan digunakan untuk menentukan pembolehubah tempatan yang disimpan dalam daftar dan bukannya RAM. Ini bermakna saiz maksimum pembolehubah adalah sama dengan saiz daftar (biasanya perkataan), dan operator unary '&' tidak boleh digunakan padanya (kerana ia tidak mempunyai lokasi memori).

{
   register int  miles;
}

Daftar hanya digunakan untuk pembolehubah yang perlu diakses dengan cepat, seperti kaunter. Perlu diingatkan juga bahawa mentakrifkan 'daftar' tidak bermakna pembolehubah akan disimpan dalam daftar, ia bermakna pembolehubah boleh disimpan dalam daftar, bergantung pada had perkakasan dan pelaksanaan.

kelas storan statik

statik Kelas storan mengarahkan pengkompil untuk memastikan pembolehubah tempatan hidup sepanjang hayat program, tanpa memerlukannya digunakan setiap kali ia masuk dan keluar Domain dicipta dan dimusnahkan. Oleh itu, menggunakan statik untuk mengubah suai pembolehubah tempatan mengekalkan nilainya antara panggilan fungsi.

pengubah suai statik juga boleh digunakan pada pembolehubah global. Apabila statik mengubah suai pembolehubah global, ia mengehadkan skop pembolehubah kepada fail di mana ia diisytiharkan.

Dalam C++, apabila statik digunakan pada ahli data kelas, ia akan menyebabkan hanya satu salinan ahli dikongsi oleh semua objek kelas.

#include <iostream>
 
// 函数声明 
void func(void);
 
static int count = 10; /* 全局变量 */
 
int main()
{
    while(count--)
    {
       func();
    }
    return 0;
}
// 函数定义
void func( void )
{
    static int i = 5; // 局部静态变量
    i++;
    std::cout << "变量 i 为 " << i ;
    std::cout << " , 变量 count 为 " << count << std::endl;
}

Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:

变量 i 为 6 , 变量 count 为 9
变量 i 为 7 , 变量 count 为 8
变量 i 为 8 , 变量 count 为 7
变量 i 为 9 , 变量 count 为 6
变量 i 为 10 , 变量 count 为 5
变量 i 为 11 , 变量 count 为 4
变量 i 为 12 , 变量 count 为 3
变量 i 为 13 , 变量 count 为 2
变量 i 为 14 , 变量 count 为 1
变量 i 为 15 , 变量 count 为 0

kelas storan luar

kelas storan luaran digunakan Menyediakan rujukan kepada pembolehubah global yang boleh dilihat oleh semua fail program. Apabila anda menggunakan 'luar', untuk pembolehubah yang tidak boleh dimulakan, nama pembolehubah menghala ke lokasi storan yang ditakrifkan sebelum ini.

Apabila anda mempunyai berbilang fail dan menentukan pembolehubah global atau fungsi yang boleh digunakan dalam fail lain, anda boleh menggunakan luaran dalam fail lain untuk mendapatkan pembolehubah yang ditakrifkan atau petikan fungsi. Boleh difahami bahawa luaran digunakan untuk mengisytiharkan pembolehubah atau fungsi global dalam fail lain.

pengubah suai luaran biasanya digunakan apabila terdapat dua atau lebih fail berkongsi pembolehubah atau fungsi global yang sama, seperti yang ditunjukkan di bawah:

Fail pertama: main.cpp

#include <iostream>
 
int count ;
extern void write_extern();
 
int main()
{
   count = 5;
   write_extern();
}

Fail kedua: support.cpp

#include <iostream>
 
extern int count;
 
void write_extern(void)
{
   std::cout << "Count is " << count << std::endl;
}

Di sini, kata kunci luaran dalam fail kedua digunakan untuk mengisytiharkan bahawa ia sudah berada dalam kiraan main.cpp fail pertama yang ditakrifkan dalam. Sekarang, susun dua fail ini seperti berikut:

$ g++ main.cpp support.cpp -o write

Ini akan menghasilkan tulis boleh laku Cuba laksanakan tulis dan ia akan menghasilkan hasil berikut:

$ ./write
Count is 5
. Penentu

kelas storan boleh ubah

bolehubah hanya digunakan pada objek kelas, yang akan diterangkan pada penghujung tutorial ini. Ia membenarkan ahli sesuatu objek digantikan dengan pemalar. Iaitu, ahli boleh ubah boleh diubah suai melalui fungsi ahli const.