Ralat sintaks C++: pembolehubah tidak boleh ditakrifkan di luar badan fungsi, apakah yang perlu saya lakukan?

王林
Lepaskan: 2023-08-21 20:51:23
asal
2127 orang telah melayarinya

Dalam pengaturcaraan C++, pelbagai ralat sintaks sering dihadapi. Salah satu kesilapan yang biasa adalah untuk menentukan pembolehubah di luar badan fungsi. Jadi, mengapa bahasa C++ tidak membenarkan pembolehubah ditakrifkan fungsi luar? Bagaimanakah kita harus menangani kesilapan ini? Artikel ini akan menjawab soalan-soalan ini untuk anda.

1. Mengapa pembolehubah tidak boleh ditakrifkan di luar badan fungsi?

Dalam pengaturcaraan C++, mentakrifkan pembolehubah adalah tugas yang sangat penting. Pembolehubah ialah unit data bernama yang digunakan dalam program untuk menyimpan maklumat. Dalam C++, pembolehubah ditakrifkan sebagai jenis data tertentu, seperti integer, aksara, titik terapung, dll. Apabila kita mentakrifkan pembolehubah dalam atur cara, ia perlu ditakrifkan mengikut cara yang ditentukan oleh sintaks C++. Sebagai contoh, apabila mentakrifkan pembolehubah tempatan di dalam badan fungsi, anda boleh menulis seperti ini:

void myFunction()
{
    int myVar = 42; // 声明和初始化一个名为myVar的整型变量
    // 程序代码
}
Salin selepas log masuk

Tetapi jika kita mentakrifkan pembolehubah dengan cara yang sama di luar badan fungsi, ralat akan berlaku, seperti:

int myVar = 42; // 错误:不能在函数体外定义变量
void myFunction()
{
    // 程序代码
}
Salin selepas log masuk

Mengapa ralat ini berlaku? Ini kerana dalam C++, semua pembolehubah global dan pembolehubah statik akan dimulakan secara automatik secara global apabila program dimulakan Jika nilai pembolehubah ini berubah di dalam badan fungsi, maka pada kali berikutnya fungsi dipanggil, pembolehubah ini akan mengekalkan. nilai kali terakhir dan bukannya memulakan semula.

Oleh itu, jika pembolehubah ditakrifkan di luar badan fungsi, ia akan menyebabkan kekeliruan data jika pembolehubah ini dipanggil beberapa kali. Terutamanya dalam pengaturcaraan berbilang benang dan pembangunan sistem pengendalian, masalah seperti ini mungkin membawa isu keselamatan yang serius kepada program.

Dalam C++, untuk menyelesaikan masalah ini, kita boleh menggunakan pembolehubah global, pemalar, ahli kelas dan kaedah lain untuk menentukan pembolehubah. Contohnya, mentakrifkan pembolehubah dalam kelas:

class MyClass {
public:
    int myVar = 42; // 在类中定义变量
    // 程序代码
};
Salin selepas log masuk

2. Bagaimana untuk menangani ralat mentakrifkan pembolehubah di luar kandungan fungsi?

Jika pembolehubah global atau pembolehubah statik ditakrifkan secara tidak sengaja dalam program C++, maka kita perlu mengambil beberapa kaedah untuk menyelesaikan masalah ini untuk memastikan operasi normal program. Di bawah ini kami akan memperkenalkan dua kaedah biasa.

  1. Mentakrifkan pembolehubah sebagai ahli kelas

Dalam C++, kita boleh mentakrifkan pembolehubah sebagai ahli kelas. Dengan cara ini, skop pembolehubah adalah terhad kepada kelas dan tidak menjejaskan bahagian lain program. Contohnya:

class MyClass {
public:
    int myVar = 42; // 在类中定义变量
    // 程序代码
};

void myFunction() {
    MyClass obj; // 创建一个MyClass的对象
    // 程序代码
}
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan pembolehubah integer bernama myVar sebagai ahli kelas. Apabila kita perlu menggunakan pembolehubah ini, kita hanya perlu mencipta objek MyClass di dalam badan fungsi, dan kemudian mengakses ahli kelas melalui objek tersebut. Dengan cara ini, anda boleh mengelakkan ralat mentakrifkan pembolehubah di luar badan fungsi.

  1. Takrifkan pembolehubah sebagai pemalar

Dalam C++, kita boleh mentakrifkan pembolehubah sebagai pemalar. Nilai pemalar kekal tidak berubah semasa menjalankan program, dengan itu mengelakkan masalah yang disebabkan oleh pembolehubah yang diubah di dalam badan fungsi. Contohnya:

const int myVar = 42; // 将变量定义为常量
void myFunction() {
    // 程序代码
}
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan myVar sebagai pemalar, supaya pembolehubah ini tidak boleh diubah suai semasa menjalankan program, dengan itu mengelakkan masalah yang disebabkan oleh mentakrifkan pembolehubah di luar badan fungsi.

Ringkasan:

Dalam pengaturcaraan C++, pembolehubah tidak boleh ditakrifkan di luar badan fungsi. Jika anda secara tidak sengaja menentukan pembolehubah global atau pembolehubah statik, kami boleh menyelesaikan masalah dengan mentakrifkan pembolehubah sebagai ahli kelas dan mentakrifkan pembolehubah sebagai pemalar. Melalui langkah-langkah di atas, kita boleh mengelakkan masalah yang disebabkan oleh pembolehubah diubah di dalam badan fungsi, dengan itu memastikan operasi normal program.

Atas ialah kandungan terperinci Ralat sintaks C++: pembolehubah tidak boleh ditakrifkan di luar badan fungsi, apakah yang perlu saya lakukan?. 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