--- parser3/src/doc/ClassExample3.dox 2001/05/04 11:08:04 1.1 +++ parser3/src/doc/ClassExample3.dox 2004/03/30 08:32:17 1.5 @@ -1,11 +1,29 @@ -/** @page ClassExample2 Пример создания класса (методы и поля) +/** @page ClassExample3 Sample of creating class (methods and fields) -Чтобы создать свой класс, состоящий не только из методов[таков, например, класс image], -нужно создать простой класс(см. @ref ClassExample1), определяющий Methoded::used_directly в false. +To create a class of your own, which +- 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. */