|
|
| version 1.4, 2002/04/29 05:59:33 | version 1.5, 2004/03/30 08:32:17 |
|---|---|
| Line 1 | Line 1 |
| /** @page ClassExample3 Пример создания класса (методы и поля) | /** @page ClassExample3 Sample of creating class (methods and fields) |
| Чтобы создать свой класс, который | To create a class of your own, which |
| - смогут создавать пользователи, | - could be constructed by users, |
| - состоящий и из методов | - has methods |
| - и из полей | - AND fields |
| [таков, например, класс image], | [like 'image' class], |
| нужно создать простой класс, см. @ref ClassExample1, переопределив Methoded::create_new_value в | one need to create simple class, see @ref ClassExample1, |
| and override Methoded::create_new_value to | |
| @code | @code |
| class MExample3 : public Methoded { | class MExample3 : public Methoded { |
| Line 14 public: // VStateless_class | Line 15 public: // VStateless_class |
| Value *create_new_value(Pool& pool) { return new(pool) VExample3(pool); } | Value *create_new_value(Pool& pool) { return new(pool) VExample3(pool); } |
| @endcode | @endcode |
| Этот метод будет вызван при создании пользователем значений этого типа: | This methods would be called when user would creates values of your type: |
| @verbatim | @verbatim |
| $variable[^example3::create[]] | $variable[^example3::create[]] |
| @endverbatim | @endverbatim |
| Здесь VExample3, это класс значения, см. ClassExample2. | Here "VExample3", is value class, see ClassExample2. |
| Его не нужно регистрировать, поскольку он Methoded::used_directly true. | It need not be registered, because it has Methoded::used_directly set to true. |
| Однако в нём необходимо объявить | But it should override: |
| VStateless_class *get_class() { return example_class3; } | VStateless_class *get_class() { return example_class3; } |
| где example_class3 это глобальный экземпляр MExample3. | where example_class3 is global instance of MExample3. |
| */ | */ |