C ++ ຂອບເຂດຂອງຕົວປ່ຽນແປງ


ໃນຂະນະທີ່ຂຽນລະຫັດທ່ານຕ້ອງການຕົວແປຕ່າງໆ. ຕົວປ່ຽນແປງມີເຂດແດນຂອງຕົນເອງທີ່ບ່ອນທີ່ສາມາດເຂົ້າເຖິງໄດ້. ຕົວແປເຂດແດນຂ້າງນອກນັ້ນບໍ່ຖືຄຸນຄ່າຂອງມັນ. ເຂດແດນເຫຼົ່ານີ້ແມ່ນເປັນທີ່ຮູ້ຈັກໃນຂອບເຂດຂອງຕົວປ່ຽນແປງ. ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະຮູ້ຊີວິດແລະຂອບເຂດຂອງຕົວແປຕ່າງໆ. ຂອບເຂດຂອງ Variables ສາມາດແບ່ງອອກເປັນສອງປະເພດ:

  1. ຕົວແປທົ່ວໂລກ
  2. ຕົວແປທ້ອງຖິ່ນ

ຕົວແປທົ່ວໂລກ

ຕົວແປທົ່ວໂລກແມ່ນຕົວແປທີ່ມັກຈະຖືກປະກາດຢູ່ນອກ main() ໜ້າ ທີ່. ຂອບເຂດຂອງຕົວປ່ຽນແມ່ນເອກະສານເຕັມທີ່ຕົວແປຖືກ ກຳ ນົດ. ຕົວແປທົ່ວໂລກສາມາດຖືກ ກຳ ນົດດັ່ງລຸ່ມນີ້:

//include a header file from Standard Library
#include 
using namespace std;
//This is GLOBAL VARIABLE
int weight;
//the work of the program starts from function called  main
int main()
{
	weight =  3; //Now weight is  equal to 3
	cout  << "Weight is  " << weight  << endl;
	cin.ignore();
	return 0;
}

ທ່ານຈະເຂົ້າໃຈດີກ່ຽວກັບ Global Variable Scope ເມື່ອທ່ານໄດ້ຮຽນຮູ້ ໜ້າ ທີ່ແລະຫົວຂໍ້ C ++ ທີ່ກ້າວ ໜ້າ. ສຳ ລັບທ່ານດຽວນີ້ມັນ ສຳ ຄັນກວ່າທີ່ຈະເຂົ້າໃຈຄວາມ ໝາຍ ຂອງຕົວແປທ້ອງຖິ່ນ.

ຕົວແປທ້ອງຖິ່ນ

ຕົວແປທົ່ວໂລກສາມາດເຂົ້າເຖິງໄດ້ໃນເອກະສານເຕັມຮູບແບບ. ແຕ່ຕົວແປໃນທ້ອງຖິ່ນບໍ່ສາມາດເຂົ້າເຖິງໄດ້ໃນເອກະສານເຕັມ. ຂອບເຂດຂອງຕົວປ່ຽນແປງທ້ອງຖິ່ນແມ່ນລະຫວ່າງຕັນຂອງການສິດສອນທີ່ຖືກ ກຳ ນົດລະຫວ່າງ“ {” ແລະ“}”. ເບິ່ງທີ່ຕົວຢ່າງນີ້:

int main()
{
	{
		double price  = 2.0,
		height  = 3.1,
		length  = 2.4;
		cout << "Price is " << price << endl;
		cout << "Length is " << length << endl;
		cout << "Height is " << height  << endl;
	}
	weight = 3; //Now weight is equal to 3
	cin.ignore();
	return 0;
}

ດັ່ງທີ່ທ່ານສາມາດເຫັນໄດ້, ລາຄາ, ຄວາມສູງແລະຄວາມຍາວໄດ້ຖືກ ກຳ ນົດໄວ້ໃນບລັອກແຍກຕ່າງຫາກໃນ ໜ້າ ທີ່ຫຼັກ. ແລະການປະຕິບັດງານທັງຫມົດແມ່ນປະຕິບັດຢູ່ໃນທ່ອນໄມ້ດຽວກັນ. ພະຍາຍາມ ດຳ ເນີນໂຄງການນີ້. ມັນຈະຖືກປະຕິບັດໂດຍບໍ່ມີບັນຫາຫຍັງເລີຍ. ໃນປັດຈຸບັນ, ປັບປຸງແກ້ໄຂໂຄງການຂອງພວກເຮົາໃນວິທີຕໍ່ໄປນີ້:
int main()
{
	{
		double price = 2.0,
		height = 3.1,
		length = 2.4;
		cout << "Price is " << price << endl;
		cout << "Length is " << length << endl;
		cout << "Height is " << height << endl;
	}
	weight = 3; //Now weight is equal to 3
	cout << "Price is " << price << endl;
	cout << "Length is " << length<< endl;
	cout << "Height is " << height<< endl;
	cin.ignore();
	return 0;
}

ພວກເຮົາ ກຳ ລັງພະຍາຍາມ ນຳ ໃຊ້ຕົວແປຕ່າງໆທີ່ຖືກປະກາດໃນບລັອກຂ້າງນອກຂອງບລັອກນີ້. ນີ້ນໍາໄປສູ່ຄວາມຜິດພາດດັ່ງຕໍ່ໄປນີ້:

ໃນຖານະເປັນການສະຫລຸບຂອງບົດຄວາມນີ້, ພວກເຮົາຕ້ອງເຂົ້າໃຈວ່າຕົວແປທ້ອງຖິ່ນແມ່ນເຫັນຢູ່ພາຍໃນທ່ອນໄມ້ເທົ່ານັ້ນ, ບ່ອນທີ່ມັນຖືກປະກາດ. ທ່ານບໍ່ສາມາດໃຊ້ຕົວແປທ້ອງຖິ່ນຢູ່ນອກທ່ອນໄມ້ບ່ອນທີ່ມັນຖືກປະກາດ.