C++/Function/Variable Scope

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Effect of scope on automatic variables

<source lang="cpp">

  1. include <iostream>

using namespace std; int main() {

  int count1 = 10;
  int count3 = 50;
  
  cout << "Value of outer count1 = " << count1 << endl;
  {                  
     int count1 = 20;
     int count2 = 30;
     cout << "Value of inner count1 = " << count1 << endl;
     count1 += 3;
     count3 += count2;
  }
  cout << "Value of outer count1 = " << count1
       << "Value of outer count3 = " << count3;
  return 0;

}


 </source>


Function with global value

<source lang="cpp">

  1. include <iostream>
  2. include <cmath>

using namespace std; double balance; /**

  Accumulates interest in the global variable balance
  @param p the interest rate in percent
  @param n the number of periods the investment is held
  • /

void future_value(double p, int n) {

  balance = balance * pow(1 + p / 100, n); 

} int main() {

  balance = 10000;
  future_value(5, 10);
  cout << "After ten years, the balance is "
     << balance << "\n";
  return 0;

}


 </source>


global variables

<source lang="cpp">

  1. include <iostream>

using namespace std; int glob = 10; void access_global(); void hide_global(); void change_global(); int main() {

   cout << "In main() glob is: " << glob << "\n\n";
   access_global();
   
   hide_global();
   cout << "In main() glob is: " << glob << "\n\n";
   change_global();
   cout << "In main() glob is: " << glob << "\n\n";
   return 0;

} void access_global() {

   cout << "In access_global() glob is: " << glob << "\n\n";

} void hide_global() {

   int glob = 0;  // hide global variable glob
   cout << "In hide_global() glob is: " << glob << "\n\n";

} void change_global() {

   glob = -10;  // change global variable glob
   cout << "In change_global() glob is: " << glob << "\n\n";

}


 </source>


The Scope Resolution Operator

<source lang="cpp">

  1. include <iostream>

using namespace std; int count1 = 100; int main() {

  int count1 = 10;
  int count3 = 50;
  cout << "Value of outer count1 = " << count1 << endl;
  cout << "Value of global count1 = " << ::count1 << endl;
  {                                          
     int count1 = 20;                        
     int count2 = 30;
     cout << "Value of inner count1 = " << count1 << endl;
     cout << "Value of global count1 = " << ::count1 << endl;
     count1 += 3;
     count3 += count2;
  }
  cout << "Value of outer count1 = " << count1 << endl
       << "Value of outer count3 = " << count3 << endl;
  return 0;

}


 </source>


Variable Scope Example

<source lang="cpp">

  1. include <iostream>

using namespace std; int subtract (int a, int b); int global = 5; int main(void) {

    int a, b;
    a = 5;
    b = 3;
    cout << "The value of main"s a is: " << a << endl
         << "The value of main"s b is: " << b << endl
         << "The value of global is: " << global << endl;
    global = 2 + subtract(a,b);
    cout << "The value of main"s a now is: " << a << endl
         << "The value of global now is: " << global << endl;
    return 0;

} int subtract(int a, int b) {

    cout << "The value of subtract"s a is: " << a << endl
         << "The value of subtract"s b is: " << b << endl;
    a = a - b + global;
    return a;

}


 </source>


Variables: Global, Local variable

<source lang="cpp">

  1. include <iostream>

using namespace std; int gVar1; int gVar2 = 2; int main() {

  char ch("A");  
                 
  cout << "Value of gVar1:    " << gVar1  << endl;
  cout << "Value of gVar2:    " << gVar2  << endl;
  cout << "Character in ch:   " << ch     << endl;
  int sum, number = 3; // Local variables with
                       // and without initialization
  sum = number + 5;
  cout << "Value of sum:      " << sum  << endl;
  return 0;

}


 </source>