.. :  

.. 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 -    

_`_` () / \_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.       ,    
      ;
2.  ,     ,     
     .
3.    1++   ";

.. Attention:     (0)  
   .()    "()"
.. Attention:     1:  
   "".
.. Attention:   ,     1++, 
        ()
     .._();
          
       ;

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

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

        : " "  
"", "":

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