Penggunaan penunjuk const dan objek tidak berubah dalam C++

WBOY
Lepaskan: 2024-06-06 10:30:43
asal
438 orang telah melayarinya

Dalam C++, penunjuk const menunjuk kepada data yang tidak boleh diubah suai, manakala objek tidak berubah mempunyai ciri yang tidak boleh diubah suai Kelebihan utama: penunjuk const: menghalang data yang ditunjukkan daripada ditulis secara tidak sengaja dan memastikan integriti data. Objek tidak boleh ubah: Dengan membuat const pembolehubah ahli kelas, objek yang tidak boleh diubah suai dicipta untuk memastikan keselamatan data.

Penggunaan penunjuk const dan objek tidak berubah dalam C++

Penggunaan penunjuk const dan objek tidak berubah dalam C++

Dalam C++, penunjuk dan objek tidak berubah ialah dua alat berkuasa untuk mengurus memori data dan mencegah penulisan tidak sengaja. Mengetahui cara menggunakannya dengan betul adalah penting untuk menulis kod yang mantap dan bebas ralat.

const pointer

const pointer ialah penunjuk kepada nilai atau objek malar. Ini bermakna data yang diakses melalui penunjuk ini tidak boleh diubah suai. Isytihar penunjuk const seperti ini:

const int* pointer_to_const_int;  // 指向常量 int 的指针
Salin selepas log masuk

Salah satu kelebihan utama penunjuk const ialah perlindungan terhadap penulisan yang tidak disengajakan. Sebagai contoh, pertimbangkan kod berikut:

int value = 10;
int* pointer_to_value = &value;  // 非 const 指针

*pointer_to_value = 20;  // 修改 value 的值
Salin selepas log masuk

Dalam contoh di atas, pointer_to_value ialah penunjuk bukan const, yang membolehkan kami menukar value yang ditunjuk. Jika kita cuba melakukan ini, pengkompil akan mengeluarkan ralat: pointer_to_value 是一个非 const 指针,允许我们更改指向的 value。如果我们尝试这样做,编译器会发出错误:

const int* pointer_to_const_int = &value;  // const 指针

*pointer_to_const_int = 20;  // 错误:试图修改 const 值
Salin selepas log masuk

不可变对象

不可变对象是不能被修改的对象。在 C++ 中,通常通过将类成员声明为 const 来创建不可变对象:

class MyClass {
public:
    const int value;  // const 成员变量

    MyClass(const int& value) : value(value) {}
};
Salin selepas log masuk

创建 MyClass

MyClass object(10);
const MyClass* pointer_to_const_object = &object;

pointer_to_const_object->value;  // 访问 const 成员变量
Salin selepas log masuk

Objek tidak berubah

Objek tidak berubah ialah objek yang tidak boleh diubah suai. Dalam C++, objek tidak berubah biasanya dicipta dengan mengisytiharkan ahli kelas sebagai const:

const char* message = "Hello World!";
Salin selepas log masuk
Selepas mencipta objek MyClass dan memberikan nilai kepada ahlinya, nilai itu tidak boleh Semak semula . Kita boleh menggunakan penunjuk kepada objek tidak berubah sama seperti penunjuk const:

rrreeeContoh praktikal

Berikut ialah contoh bagaimana penunjuk const dan objek tidak berubah digunakan dalam projek sebenar:

Pemalar rentetan dalam C++

adalah pemalar rentetan dalam C++ sebenarnya contoh objek tidak berubah. Kita boleh menggunakan penunjuk const pada rentetan ini seperti ini:

rrreee

Dengan cara ini, kita boleh menggunakan rentetan dengan selamat tanpa perlu risau tentang mengubah suai kandungannya secara tidak sengaja.

🎜🎜Lindungi Data Sensitif🎜🎜🎜Kami boleh menggunakan penunjuk const dan objek tidak berubah untuk melindungi data sensitif seperti kata laluan atau maklumat kewangan. Dengan menyimpan data dalam objek tidak berubah dan mengaksesnya menggunakan penunjuk const, kami menghalang perubahan yang tidak dibenarkan. 🎜

Atas ialah kandungan terperinci Penggunaan penunjuk const dan objek tidak berubah dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan