GNU Free Documentation License . .

: ,

( , . header file),   , «» , ({$I file.inc} , #include <file.h> ).

C++, ,   , , , , , . .h; C++ .hpp. , #ifndef, #define, #endif. , ( inline- C++) . , , , , . .

, ++.

(, ) . . , ( ) , , .

[]

, . : , X Y? , .

( -) , :

 int add(int a, int b)
 {
     return a + b;
 }

, , :

 int add(int, int);
 
 int triple(int x)
 {
     return add(x, add(x, x));
 }

, , add   , , , . , .

. , ,   , add. , add, #include :

 /* File triple.c */
 #include "add.h"
 
 int triple(int x)
 {
     return add(x, add(x, x));
 }

. ( ):

 /* File add.h */
 #ifndef ADD_H
 #define ADD_H
 
 int add(int, int);
 
 #endif /* ADD_H */

#ifndef - #endif #pragma once:

 /* File add.h */
 #pragma once
 
 int add(int, int);

  (, ). , , . , h- c-:

 /* File add.c */
 #include "add.h"
 
 int add(int a, int b)
 {
     return a + b;
 }

, , . , ( C++ , - , ).

[]

  ,  . . . , Java .

[]

: , , Y X.

, . , STL:

// unit.h
#ifndef __UNIT_H__
#define __UNIT_H__
 
#ifndef UNIT_STL_UNUSED
  #include <iostream>
  void dump(std::ostream& os);
  void dump() { dump(std::cout); }
#endif
 
void run();
 
#endif
// main.cpp
 
#define UNIT_STL_UNUSED
#include "unit.h"
 
int main()
{
  run();
  return 0;
}

, , .

c-, , , .

,   #define, ,

[]

  10 c-, h-, 10 . , .

C++ (, inline-, , static-) .

c-, h-, . C++, , . h- , c- h-.

(, Java) .

[] .

[]

[]

  • . . 8. // ++ / . . ..  4.  .: , 2003.  . 263-280.  560 .  ISBN 5-279-02204-7, 004.438(075.8) 32.973.26-018 1173