|
|
| version 1.1, 2001/05/04 11:08:04 | version 1.5, 2004/03/30 08:32:17 |
|---|---|
| Line 1 | Line 1 |
| /** @page ClassExample2 Пример создания класса (методы и поля) | /** @page ClassExample3 Sample of creating class (methods and fields) |
| Чтобы создать свой класс, состоящий не только из методов[таков, например, класс image], | To create a class of your own, which |
| нужно создать простой класс(см. @ref ClassExample1), определяющий Methoded::used_directly в false. | - could be constructed by users, |
| - has methods | |
| - AND fields | |
| [like 'image' class], | |
| one need to create simple class, see @ref ClassExample1, | |
| and override Methoded::create_new_value to | |
| После чего создать потомка Value, в котором переопределить Value::get_element и/или Value::put_element, | @code |
| в конструкторе которого при вызове базового конструктора | class MExample3 : public Methoded { |
| public: // VStateless_class | |
| Value *create_new_value(Pool& pool) { return new(pool) VExample3(pool); } | |
| @endcode | |
| @test 3 | This methods would be called when user would creates values of your type: |
| @verbatim | |
| $variable[^example3::create[]] | |
| @endverbatim | |
| Here "VExample3", is value class, see ClassExample2. | |
| 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; } | |
| where example_class3 is global instance of MExample3. | |
| */ | */ |