Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Feb 10, 2009

Nested Functions in C++

Although C++ does not allow nested function declaration, you can simulate it using a structure with a static function:

void outer()
	static int v1 = 5;
	int v2 = 5;

	struct thru
		static void inner()
			std::cout << v1 << std::endl;
			//std::cout << v2 << std::endl;

The inner() function will not have access to local variables of outer() (the line that is commented out in the code above will cause an error, for example); however, it will be able to access the local static variable v1 in outer().

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