title: Why does a function need to be declared before it's defined or used?
body: <p>In C its optional. In C++ one <strong><em>"MUST"</em></strong> declare a function before its used/defined. Why is it so? Whats the need? We don't do that in C# or Java.</p>
  
  <p>Funny thing is while we are <em>defining</em> a function. The definition itself has a declaration even then, we need to declare. God knows why?</p>