|
|
| version 1.1, 2001/05/04 11:08:04 | version 1.2, 2001/05/07 13:29:54 |
|---|---|
| Line 1 | Line 1 |
| /** @page ClassExample2 рТЙНЕТ УПЪДБОЙС РТПУФПЗП ЛМБУУБ (ФПМШЛП РПМС) | /** @page ClassExample2 Пример создания простого класса (только поля) |
| юФПВЩ УПЪДБФШ УЧПК ЛМБУУ, ОЕ УПДЕТЦБЭЙК НЕФПДПЧ[ФБЛПЧ, ОБРТЙНЕТ, env; УН. VEnv], | Чтобы создать свой класс, не содержащий методов[таков, например, env; см. VEnv], |
| УМЕДХЕФ УПЪДБФШ РПФПНЛБ Value, Ч ЛПФПТПН РЕТЕПРТЕДЕМЙФШ Value::type, | следует создать потомка Value, в котором переопределить Value::type, |
| Б ФБЛЦЕ Value::get_element Й/ЙМЙ Value::put_element. | а также Value::get_element и/или Value::put_element. |
| @test 2 | Файл pa_vexample2.h в каталоге types/: |
| жБКМ vexample2.C Ч ЛБФБМПЗЕ types/: | |
| @code | @code |
| #define EXAMPLE2_CLASS_NAME "example2" | #define EXAMPLE2_CLASS_NAME "example2" |
| Line 19 public: // Value | Line 17 public: // Value |
| // VEnv: field | // VEnv: field |
| Value *get_element(const String& aname) { | Value *get_element(const String& aname) { |
| // getenv | // показания датчика |
| double temperature=25; // УЮЙФБФШ РПЛБЪБОЙС ДБФЮЙЛБ | double temperature=25; |
| return NEW VDouble(temperature); | return NEW VDouble(temperature); |
| } | } |
| Line 32 public: // usage | Line 30 public: // usage |
| }; | }; |
| @endcode | @endcode |
| Зарегистрируйте ваш класс в Request::classes(), добавив в конструктор Request [файл pa_request.C]: | |
| @code | |
| /// methodless | |
| // example2 class | |
| classes().put(*NEW String(pool(), EXAMPLE2_CLASS_NAME), &example2); | |
| @endcode | |
| */ | */ |