Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: Visual C++
Expertise: Beginner
Aug 10, 2000

Variable Creation and Scope

Question:
In writing a basic introductory module about C++, I came upon the topic of "instant variable creation" within for loops and noticed to my dismay that the following code worked without errors:
for (int i = 0; i < 20; i++)
  {
     cout << "Hello World i == " << i << endl;
  }
  cout << i;  //should produce an error?
In Java, the scope of i would have been limited to the loop itself. What's the deal? I'm using Microsoft's Visual C++ IDE, with the latest service pack installed.

Answer:
A standard compliant compiler should issue an error message in this case because the scope of i is limited to the for loop exclusively. However, in pre-standard C++ the scoping rules were different: the variable would remain in scope even after the for loop finished. Visual C++ still adheres to the older convention. This is a well known bug.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date