Jika sebuah fungsi memiliki variabel lokal dengan nama yang sama sebagai variabel global, variabel lokal hanya dapat dilihat oleh fungsi. Hal ini ditunjukkan oleh Program dibawah ini: Program 7.18
#include<iostream> usingnamespacestd; //Funsiprototipe voidtexas(); voidarkansas(); intcows=10; //variabelglobal intmain() { cout<<"Disanabanyak"<<cows<<"cowsdiprogramutama.\n"; texas(); arkansas(); cout<<"Kembalidalamprogramutama,disanabanyak"<<cows<<"cows.\n"; return0; } voidtexas() {intcows=100;//variabelLocal cout<<"disana"<<cows<<"cowsditexas.\n"; } voidarkansas() {intcows=50;//variabelLocal cout<<"Thereare"<<cows<<"cowsinarkansas.\n"; }
Ketika program diatas sedang menjalankan fungsi utama, variabel global cows akan terlihat. Dalam fungsi texas dan Arkansas, meskipun ada variabel lokal dengan nama cows. Variabel global tidak terlihat ketika program sedang menjalankan fungsi mereka. program dibawah merupakan program untuk mendaftar dan program ini menggunakan variabel global dan lokal. Fungsi ringUpSale menghitung dan menampilkan harga, pajak penjualan, dan subtotal untuk setiap item yang dibeli. Memiliki variabel lokal, pajak, yang memiliki nama yang sama seperti variabel global. Pajak pada ringUpSale variabel yang digunakan untuk menghitung pajak penjualan pada item, sementara global pajak variabel yang digunakan oleh program utama untuk menghitung total pajak penjualan pada pembelian. Supaya lebih jelas, perhatikan program dibawah ini: Program 7.19
#include<iostream> #include<iomanip> usingnamespacestd; //Fungsiprototipe voidringUpSale(); //variabelGlobal constdoubleTAX_RATE=0.06; doubletax,sale,total; intmain() { charagain; cout<<fixed<<showpoint<<setprecision(2); do { ringUpSale(); cout<<"Apakahdisanaadaadasesuatuyangdapatdijual?"; cin>>again; } while(again=='y'||again=='Y'); tax=sale*TAX_RATE; total=sale+tax; cout<<"\nPajakpenjualannyaadalah"<<tax<<endl; cout<<"TotalPembayaranadalah"<<total<<endl; return0; } voidringUpSale() {//VariabelLocal intqty; doubleunitPrice,tax,thisSale,subTotal; cout<<"\nJumlah";
cin>>qty; cout<<"Hargapersatuan:"; cin>>unitPrice; thisSale=qty*unitPrice; //totalhargaunit sale+=thisSale;//Updatevariabelglobalpenjualan tax=thisSale*TAX_RATE;//pembayaranpajakuntukitem subTotal=thisSale+tax; //subtotaluntuktiapitem cout<<"hargauntuktiapitem:"<<thisSale<<endl; cout<<"pajakuntuktiapitem:"<<tax<<endl; cout<<"SubTotaluntuktiapitem:"<<subTotal<<endl; }
Next read ON halaman 13.