[fpc-devel] "Friend" classes?

Micha Nelissen micha at neli.hopto.org
Fri Mar 25 09:17:53 CET 2005

On Thu, 24 Mar 2005 09:02:30 +0100
DrDiettrich <drdiettrich at compuserve.de> wrote:

> Perhaps you missed that in C/C++ the preprocessor is typically (99.999%)
> used to include header files, not source files. This is comparable to
> Pascal "uses", not to {$Include}!

What's the difference between a 'header' file, and a source file ? Header files often contain template classes with inline implemented methods.

Preprocessor is used also for macros.

Please look again at 'uses', it works on a more abstract level than just recompiling all units depended on, it's where the speed of compiling pascal comes from.

> For the compound Pascal units, the most important *difference* is the
> required implementation of everything, what's declared in the interface
> section of an unit, in the implementation section of the *same* unit.
> This requirement leaves no room for inconsistent sets of interfaces
> (header files) and implementations (source modules).

An advantage, I would say.

> The only *disadvantage* of units are the current Pascal compilers, which
> cannot handle circular unit references :-(

No, it's an advantage: it makes the code and design clearer, plus it increases the speed of compilation a *lot*.


More information about the fpc-devel mailing list