Scope.cpp
TCP1, p. 155-156
download
// How variables are scoped in C++
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int scp1 = 0;
// scp1 visible here
cout << "Outer:" << endl;
cout << "scp1 = " << scp1 << endl; // 0
{
// scp1 still visible here
scp1++; // 1
cout << "Inner:" << endl;
cout << "scp1 = " << scp1 << endl; // 1
int scp2 = 0;
// scp2 visible here
cout << "scp2 = " << scp2 << endl; // 0
{
// scp1 & scp2 still visible here
scp1++; // 2
cout << "Innermost:" << endl;
cout << "scp1 = " << scp1 << endl; // 2
scp2++; // 1
cout << "scp2 = " << scp2 << endl; // 1
int scp3 = 0;
// scp1, scp2 & scp3 visible here
cout << "scp3 = " << scp3 << endl; // 0
} // <-- scp3 destroyed here
// scp3 not available here
// scp1 & scp2 still visible here
cout << "Inner:" << endl;
cout << "scp1 = " << scp1 << endl; // 2
cout << "scp2 = " << scp2 << endl; // 1
// cout << "scp3 = " << scp3 << endl; // compile error
} // <-- scp2 destroyed here
// scp2 & scp3 not available here
// scp1 still visible here
cout << "Outer:" << endl;
cout << "scp1 = " << scp1 << endl; // 2
// cout << "scp2 = " << scp2 << endl; // compile error
// cout << "scp3 = " << scp3 << endl; // compile error
return 0;
} // <-- scp1 destroyed here
/*
g++ Scope.cpp -o Scope
./Scope
Outer:
scp1 = 0
Inner:
scp1 = 1
scp2 = 0
Innermost:
scp1 = 2
scp2 = 1
scp3 = 0
Inner:
scp1 = 2
scp2 = 1
Outer:
scp1 = 2
*/
Comments
Post a Comment