.. :  

.. include:: commonchm.txt

***************************************
   1++
***************************************
..	<chminfo>
		<insert nodes="//common/maininfo/*"/>
		<alinks>_1cpp_oop_</alinks>
	</chminfo>

.. contents:: 
	:backlinks: none


---------------
 - - ,     
      .
          1.
 ,      : , 
 ;        ,
    .
         ,
  *()*        .

**** -          
  .      
         
       
 .       
       .
      :

-          ;
-           
   
-    
-          
    ,        
             
-       :   ,
   -,  / ()  
  ,   -    
-         

     (  1:) 1++ 
  :

-      ,  : "", ""  ..
-    ,   ( 1++)
-          
-         
-         

**** -         
 , ..      ( )
  (  ).  :

-     "" ,    
-        ,   
  ,      ,     ,
            
-   ,       ,
        

**** -        .
         
  ,    ,     
    .

===========================
  
===========================

 
---------------------------
- 1C: 7.7, , Windows98 OSR2, Windows 2000, Window XP
-     1 1C++.dll,     1 \"()\"
-     Defcls.prm,       ()
     ,   .
      . .
-  oxy.ini,      BIN 1C:   
      .
-         ,        \*.ert.
              Defcls.prm.

 
---------------------------
 ,   (),   1    ().

     ,    :

_`` () / GetBaseClass(strNameOfBaseClass)
      ,         
\"\".      ,    0.
          
   /   .
:   : \" \",    
    ,   - ,  
\" \", \" \", ,   , 
       .
    ,     :
    ""    1:  \" \" 
\" \"    \"()\"  \"()\",
.   \"\"      ,   
 ,     \"()\"  \"()\"
 \"\"  (\" \")    
    ``_ (\" \")    .

_`` () / AssignBaseClass(NameOfBaseClass)
           ,
  .      ,    ,
\" \".         .

_`` (, , )
/ SendMessageOwnMod(WhoSend, KindMessage, Data).   
(, , )     
    ,   ,     
()   .

_`` () / GetPathName().      ,   
  .

_`` () / GetEnvContext() -      .
:  ,      

_`` () / GetParamsList(strNameOfMeth)
     ,   ,  
    .       
 ,        \":\"  
 .    .   1.3.,  \"  \".

_`` (>,<>,<) /
SetOnIndexParams(strNameOfMeth >,<nInd>,<uVal) -     
             .
-  -      ,   .
-  -   ,       
-  -  .
: 1 -   , 0 -    

_`` (>, <) /
ReplaceInstBaseClasses(strNameClass>, <uValOfClass) -    
      .     
 ,      .
-  -   ,     .
-  -    .
: 1-   , 0 -    

_`_` / \_OnOpen -       .

_`_` () / \_Throw(Object) -    - .
             
       ( ).   
  ,         
    1.   \"\"    
GetExeption()/` <extobjs.chm::/extobjs31.html>`_ ()   ExecuteModule/
` <extobjs.chm::/extobjs16.html>`_ .
 -   1.

_`_` () / _GetCode() - ,      ;

_`_SQLCreate` (Value, obMDW) - ,       
   ODBCRecordset    ( ).
        .      .
Ÿ   ODBCRecordset     ,     .
:
- Value -     ;
- obMDW -    MetaDataWork.

   
----------------------------

            
 **Defcls.prm**,       ,   
      Defcls.     ::

  // -   
   (class)    =     :
    <  >, <  > {
    
  };

** **
       . !   .

** **
  <>|<#> .* |  @MD   ,    ,
         ,     
    .         
    ,       .  
  # ,        ,  
     BIN 1:   oxy.ini.     
   [alias_path],     .

        ,     
    @MD,      .

   ::

  [alias_path]
  1 = :\1_1\
  2 = :\1_2\

         ::

    = #1\ 1.ert {};

**  **
     ** **.         ,
     .
**  **
    .    ,   ,   
   ,     ,     
   . (,      -  ,   -
   )

:
  <  >   (Val | > 
   <  =   >, <Val | > 
   < >, ...);

:
  void   (Val | >   
   =   , <Val | >   <
  >, ...);

Val | 
   , ,   
    , ..      .
  ()

 **** -      
(Undefine),     \ 
 .    ,   
       ,
(    ,  ,  ..) - ,
  ""  ,   
    . ()


    .     
     ,     - .
  
        
     ,      .  : 
  1 = "  ";  1 = 100;  1 = '01.01.2002', 
       1:     
  ,    = "" -   
           "".
          1,  -
   , ,   . , 
   = (),  ""    ,
      (). :    
     "" -    .   
        .
  
  ,  
   "...",        .
   ,    , 
   . ,       
        ,  ****. : void
  1( 1,  2, ...);,   1, 2
            
    .       :
  .1("{3, 4, 5}", 200, "  3", "
   4", "  5"); ,     
    "  3", "  4", "
   5",        3,   
         .      
   1  2   , ,  
  "{3, 4, 5}"  200.    "1"   
     :  (1, 2) //
   .     
      ``_ ()
  (GetParamsList(NameOfMethod)),    ,
     ,   .    
      ,     ({}), 
    ,  .  
        ,   
     ,    "()". 
      ()    
   "1",       "{3, 4,
  5}",   -      
   "  3",     "3",
    "  4",     "4"  ..

::

   _1=Base_1.txt
  {
    void 1( 1,  2);
     2( 1,  2);
  };
   _1=Derive_1.txt: _1, .1, 
  {
    void 1( 1,  2); //    
      // 
      ( ); //     
      //       .   
      //     
    void 3( ); //         ""
  };
   =OC.txt : ., .
  {
    void 1(_1 1); //     1  
      //  "_1"     "_1"
    void 2(_1 1); //       1 
      //    "_1",   "_1"
     ( );
     ( );
  };

:        ,  
. .

   
----------------------------

       ( , 
  1),       ,    
 ,   ,    .    
      Defcls.prm.

      
  1:,    
.

         
  **.

         
  **.

        (
),   : ``_  ``_,
    . ::

	//         
	// .
	 GetThis()  ; 

	//   "1"  "_1" .  
	 1 (1, 2) 
		 = GetThis();
		_1 = .("_1");
		 _1 <> 0 

		;
	

.. Attention:: :      
   , ..   ::

      ;
      GetThis()  ; 
     ...............
      = GetThis();
     ...............

        ,  ,  
        (""), 
     (memory leaks), -      
    .        , 
           ,   ,  
   ,    .

       **** () .
Constructor()  **** () . Destructor(),  , , 
       (() -  ,
() -  ).     .

  /   
  ()     (  
    ):

-      
  **_** () . OnGet\_, 
   -  ,    ,  
   ,  -   ,
         .   
       .
-       
  **_** () . OnWrite\_, 
   -  ,    ,  
   ,    .
       ,     
      .   
       .
-      
    :

  -      
      **\_** () .
    _OnReadProperty(strNameOfAttr)   ""
      ,      
    .      
      ,    
    "".
  -       
     
    **\_** (,  ),
     "" -   ,  
     ""   
    , ..      
     .

****:       
     :

1. _GetNDynamicProps() / **\_** -
      .
#. _GetPropDynamicName(nNPar) / **\_** () -  
       ,   
     1  _GetNDynamicProps() .

.. Attention::     , 
      .     , 
    /  
          /
  "_"  "_".
     /   ()
     .

       
  (    ""),
      ,   
       ( 
 "").

      ,  
   ( ).     
  :

1. IsSerializable() . **** () //,  
    1,         .
#. SaveToString() . **** () //,  
    ,       
    .     
   .
#. LoadFromString(str) . **** () //,  
         
   "()",     
   ,    .   
       "".

     "()",  
,   0,    (),  
  1 ()  ,
   ""  "()".

.. Attention::    ,  ,
       "()",  1
  ""      .
      ,   
  .       .   
  ::

     () 
         = ("");
        .();
         .() > 0 
             = .(1);
             ()=1 
               -2;
            ;
            
                 = ();
                 = 0;
                
                     = .IsSerializable();
                
                    
                         = .();
                    
                         -4;
                    ;
                ;
                  = 0 
                   -4;
                ;
                
                    .LoadFromString(.());
                
                    
                      .(.());
                    
                         -5;
                    ;
                ;
                 ;
            
                 -3;
            ;
        
             -1;
        ;
     //

.. Note::     
   , ,     "DynaValue" (.
   3.6.,   "", "",
  "", "")

:
   ::

	class  = base.ert
	{
		void 1(); //     ,   
										  // 2  
		void 2();
	};
	class  = derive.ert : 14_
	{
		void 2(); //    
	};

   ""::

	 GetThis()  ; 

	 2() 
		("::2");
	
	 1() 
		("() =
	"+(GetThis())); //    
		GetThis().2(); //   
	

   ""::

	 2() 
		("::2");
	

::

      ("  ");
       = ("");
      . 1();
      ("  ");
       = ("");
      . 1();

    ::

	  
	
	::2
	  
	
	::2

       .  
       ::

	//# ClassBegin <ClassName1>;
	 1;
	 ()
		.........
	//# ClassEnd <ClassName1>;



	//# ClassBegin <ClassName2>;
	 2;
	 ()
		.........
	//# ClassEnd <ClassName2>;

  <ClassName1>     (  ).
:

-        .
-  -    .
-  ALS-    - .


------------

  1++       
(Defcls.prm),         1,   
    /.  ,  
  ,      
, ..     . : - 
  Defcls.prm     ,  
    .  
   :   
Defcls.prm,      
 .

.. Attention:       
           .

//#if symbol [operator symbol]
    ,   "",
   ,      
  "",  ,    //#if   //#elif    //#else 
  //#endif,    .
  Symbol -  ,      
   //#define.      ! (
  ).
  Operator::

    =  ();
    !=  ( );
    &   ();
    \|   ();

    ,   //#if,    //#elif ,
  //#else, //#endif;
//#else
  ,    ,   
  ""     //#if  //#elif.    
    //#endif;
//#elif symbol [operator symbol]
  ,    ,
      //#elif  //#if   "". 
    symbol [operator symbol]... ,   "", 
      //#elif,      //#elif 
  #else  //#endif,     .  symbol [operator
  symbol]... .   //#if;
//#define symbol
     ,  
       "",     
     //#undef;
//#undef symbol
     .   
        //#if, //#elif, //#else;
//#warning text
   "text"    1. :  Defcls.prm
    ;
//#error text
          
  "text"    1. :  Defcls.prm  
  ;
//#preprocessor off
        
          .
//#exinfo
         
   .       
  ,    ,   ,   
  .      .
#include "<#alias></pathname/>namefile.ext"
     
         () defcls.prm.   
      ,   oxy.ini, 
       .      .
      txt, prm -     ert - 
   1
#curmeth
           
           
  . :  Defcls.prm   .

  1C++
--------------------

       :

1.    1++   ";
2.     ,
      ert-      
   ;
3.       ,   
      ;
4.  ,     ,    
     .

.. Attention:     1: 
   "".

 1C++
--------------

       1,
 -->  ... -->  " 1C++".   
     1 .

        : " " 
"", "":

- ****        
  ,       ,  
        ;
- ****    " ",
      :      
   (  ) ,   
  ( )         P-. 
            
  ,      
   ,         
      .   
       ,   
     ,    
   .       
  .       
         ,  
       / 1  
  1:.    #LoadFromFile   1.
- ****     1  , 
     .     
  ****   .
