How are large codebase for a large software written? : <p>i was trying to solve some bugs (easyhacks) for libreoffice , but i had problem understanding the code . It may be because of the way i have learnt programming and never working with a large codebase before.<br>
Below is how coding looks in my textbook and school..<br></p>

<pre><code>#include&lt;header1&gt;
#include&lt;header2&gt;
using some namespace
class MyClass1{
.....
.....
};
class MyClass2 : public MyClass1{
.....
.....
};
int main()     //entry point 
{
int a , b ;
string str ;       //use basic data types
MyClass1 Ca
.....
.....
}
</code></pre>

<p>This is roughly what programs look like even if something complex is to be learnt.<br>
Now the bug i was looking at had specific code pointers to it , so i looked  into it , this is how it looked like to me</p>

<pre><code>//mediaItem.hxx --&gt; represents embedded media object
#include&lt;several_headers.hxx&gt;
class RANDOM_MACRO MediaItem : public SomeOtherClass{
public :
const sal_uint&amp; some_var ;
const OUString&amp; some_str ;   \\never before seen data types
virtual void someFoo ;
Virtual OUString getURL() ;  \\function i am supposed to look into
private :
struct Impl ;
...
};
</code></pre>

<p>and then there is a .cxx file defining the functions. <br>
so i have a few questions</p>

<ol>
<li>Why aren't basic data types like int , string ever used in writing such programs?</li>
<li>Where is the entry point for such large programs , i.e there is always a main() when i write a program. </li>
<li>What are terms like pImpl , Impl that i frequently come across inside classes .
<br></li>
</ol>

<p>P.S. perhaps this should be a seperate question , but people have advised me to understand large codebases using debugger , now again i have used debugger before to understand small programs but i dont understand how i can use it over here especially without knowing an entry point . Thank you.... </p>
