Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства для  версии 10.9 Mac OS X

Если Вы выполняете различную версию  Mac OS X, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



stooop(n)                        Simple Tcl Only Object Oriented Programming                       stooop(n)



____________________________________________________________________________________________________________

NAME
       stooop - Object oriented extension.

SYNOPSIS
       package require Tcl  8.3

       package require stooop  ?4.4.1?

       ::stooop::class name body

       ::stooop::new class ?arg arg ...?

       ::stooop::delete object ?object ...?

       ::stooop::virtual proc name {this ?arg arg ...?} ?body?

       ::stooop::classof object

       ::stooop::new object

       ::stooop::printObjects ?pattern?

       ::stooop::record

       ::stooop::report ?pattern?

____________________________________________________________________________________________________________

DESCRIPTION
       This  package provides commands to extend Tcl in an object oriented manner, using a familiar C++ like
       syntax and behaviour. Stooop only introduces a few new commands:  class,  new,  delete,  virtual  and
       classof.  Along  with a few coding conventions, that is basically all you need to know to use stooop.
       Stooop is meant to be as simple to use as possible.

       This manual is very succinct and is to be used as a quick reminder for  the  programmer,  who  should
       have read the thorough stooop_man.html HTML documentation at this point.

       ::stooop::class name body
              This  command creates a class. The body, similar in contents to a Tcl namespace (which a class
              actually also is), contains member  procedure  definitions.  Member  procedures  can  also  be
              defined  outside  the  class  body, by prefixing their name with class::, as you would proceed
              with namespace procedures.

              proc class {this ?arg arg ...?} ?base {?arg arg ...?} ...? body
                     This is the constructor procedure for the class. It is invoked following a new  invoca-tion invocation
                     tion  on  the class. It must have the same name as the class and a first argument named
                     this. Any number of base classes specifications, including arguments to  be  passed  to
                     their constructor, are allowed before the actual body of the procedure.

              proc ~class {this} body
                     This  is the destructor procedure for the class. It is invoked following a delete invo-cation. invocation.
                     cation. Its name must be the concatenation of a single  ~  character  followed  by  the
                     class name (as in C++). It must have a single argument named this.

              proc name {this ?arg arg ...?} body
                     This is a member procedure of the class, as its first argument is named this. It allows
                     a simple access of member data for the object referenced by this inside the  procedure.
                     For example:

                        set ($this,data) 0


              proc name {?arg arg ...?} body
                     This  is  a  static (as in C++) member procedure of the class, as its first argument is
                     not named this. Static (global) class data can be accessed as in:

                        set (data) 0


              proc class {this copy} body
                     This is the optional copy procedure for the class. It must have the same  name  as  the
                     class  and exactly 2 arguments named this and copy. It is invoked following a new invo-cation invocation
                     cation on an existing object of the class.

       ::stooop::new class ?arg arg ...?
              This command is used to create an object. The first argument is the class name and is followed
              by  the  arguments  needed by the corresponding class constructor. A unique identifier for the
              object just created is returned.

       ::stooop::delete object ?object ...?
              This command is used to delete one or several objects. It takes one or more object identifiers
              as argument(s).

       ::stooop::virtual proc name {this ?arg arg ...?} ?body?
              The virtual specifier may be used on member procedures to achieve dynamic binding. A procedure
              in a base class can then be redefined (overloaded) in the derived class(es). If the base class
              procedure  is  invoked  on  an  object,  it  is  actually the derived class procedure which is
              invoked, if it exists. If the base class procedure has no body, then it is considered to be  a
              pure virtual and the derived class procedure is always invoked.

       ::stooop::classof object
              This command returns the class of the existing object passed as single parameter.

       ::stooop::new object
              This  command  is used to create an object by copying an existing object. The copy constructor
              of the corresponding class is invoked if it exists, otherwise a  simple  copy  of  the  copied
              object data members is performed.


DEBUGGING
       Environment variables

              STOOOPCHECKDATA
                     Setting  this  variable to any true value will cause stooop to check for invalid member
                     or class data access.

              STOOOPCHECKPROCEDURES
                     Setting this variable to any true value will cause stooop to check for  invalid  member
                     procedure arguments and pure interface classes instanciation.

              STOOOPCHECKALL
                     Setting  this  variable  to any true value will cause stooop to activate both procedure
                     and data member checking.

              STOOOPCHECKOBJECTS
                     Setting this variable to any true value will cause stooop to activate object  checking.
                     The following stooop namespace procedures then become available for debugging: printOb-jects, printObjects,
                     jects, record and report.

              STOOOPTRACEPROCEDURES
                     Setting this environment variable to either stdout, stderr or a  file  name,  activates
                     procedure  tracing. The stooop library will then output to the specified channel 1 line
                     of informational text for each member procedure invocation.

              STOOOPTRACEPROCEDURESFORMAT
                     Defines the trace procedures output format. Defaults  to  "class:  %C,  procedure:  %p,
                     object: %O, arguments: %a".

              STOOOPTRACEDATA
                     Setting  this  environment  variable to either stdout, stderr or a file name, activates
                     data tracing. The stooop library will then output to the specified channel  1  line  of
                     informational text for each member data access.

              STOOOPTRACEDATAFORMAT
                     Defines the trace data output format. Defaults to "class: %C, procedure: %p, array: %A,
                     object: %O, member: %m, operation: %o, value: %v".

              STOOOPTRACEDATAOPERATIONS
                     When tracing data output, by default,  all  read,  write  and  unsetting  accesses  are
                     reported,  but  the  user can set this variable to any combination of the letters r, w,
                     and u for more specific tracing (please refer to the trace Tcl  manual  page  for  more
                     information).

              STOOOPTRACEALL
                     Setting this environment variable to either stdout, stderr or a file name, enables both
                     procedure and data tracing.

       ::stooop::printObjects ?pattern?
              Prints an ordered list of existing objects, in creation order, oldest first. Each output  line
              contains  the  class  name,  object  identifier  and  the  procedure within which the creation
              occurred. The optional pattern argument (as in the Tcl string match command) can  be  used  to
              limit the output to matching class names.

       ::stooop::record
              When  invoked,  a snapshot of all existing stooop objects is taken. Reporting can then be used
              at a later time to see which objects were created or deleted in the interval.

       ::stooop::report ?pattern?
              Prints the created and deleted objects since the ::stooop::record procedure was invoked  last.
              If present, the pattern argument limits the output to matching class names.


EXAMPLES
       Please see the full HTML documentation in stooop_man.html.

BUGS, IDEAS, FEEDBACK
       This  document,  and  the  package  it  describes,  will undoubtedly contain bugs and other problems.
       Please  report  such  in  the  category  stooop   of   the   Tcllib   SF   Trackers   [http://source -
       forge.net/tracker/? group_id=12883].   Please  also report any ideas for enhancements you may have for
       either package and/or documentation.

KEYWORDS
       C++, class, object, object oriented

CATEGORY
       Programming tools



stooop                                              4.4.1                                          stooop(n)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Tcl.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Tcl через их страницу создания отчетов ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.