• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

chapter 3 self test, question 8

 
Rachel Glenn
Ranch Hand
Posts: 95
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The function...

void go(int ouch)
{
ouch++;
for (int ouch = 0; ouch < 5; ouch++)
{}
}

So this will compile in C++, but not Java?? Why doesn't JAVA accept this,but C++ does?
 
Abhilash Sharma
Ranch Hand
Posts: 67
Eclipse IDE Fedora Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
R Gle wrote:The function...

void go(int ouch)//1
{
ouch++;
for (int ouch = 0; ouch < 5; ouch++)//2
{}
}

So this will compile in C++, but not Java?? Why doesn't JAVA accept this,but C++ does?


In case of java, once ouch is declared at 1 it can't be declared again at 2 because ouch is considered local to function block/scope and for loop come under that scope. So, you can't declare same variable two times in the same block/scope.

In case of c++, I think for loop may be considered as different scope to the compiler. So, may be redeclaration is not a problem.

 
Rahul mir
Ranch Hand
Posts: 38
Eclipse IDE Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Variables and functions are accessed using scoping rules, not visbility rules, in C++, int ouch is decleared as function parameter and again in side the for loop,
the scope of the variable is fixed inside the braces, it is allow in C++ but not in java.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic