/*Orion Lawlor's Simple C++ Examples, olawlor@acm.org
Shows how to call a member object's constructor,
and how to define a constructor outside the class declaration.
*/
#include <iostream>

class bar {
public:
	bar(const char *fancyCtor) {
		std::cout<<"bar constructor: "<<fancyCtor<<std::endl;
	}
};

class foo {
	bar a;
	bar b;
public:
	foo(void); //Defined below
};

int main()
{
	foo a;
	
	return 0;
}

foo::foo(void) 
	:a("First foo subobject"),b("Second foo subobject")
{
	std::cout<<"foo constructor"<<std::endl;
}
/*<@>
<@> ******** Program output: ********
<@> bar constructor: First foo subobject
<@> bar constructor: Second foo subobject
<@> foo constructor
<@> */
