С++ - язык, который изучается постепенно.Ссылки на указатели
                   Справочники Всё для создания сайта

Ссылки


Home
Бизнес
Справочники
Советы







Материалы книги получены с http://www.itlibitum.ru/

Ссылки на указатели

Производящая функция не обязана возвращать Foo*. С таким же успехом подойдет и Foo&.

class Foo {

public:

static Foo& make(); // Производящая функция

virtual void do_something() = 0;

virtual void do_something_else() = 0;

};

// В файле foo.cpp

class PFoo : public Foo {

private:

Foo* foo;

public:

PFoo(Foo* f) : foo(f) {}

virtual void do_something() { foo->do_something(); }

virtual void do_something_else() { foo->do_something_else(); }

};

class Bar : public Foo {

// Все для производного класса

};

Foo& Foo::make()

{

return *(new PFoo(new Foo));

}

Единственная проблема заключается в том, что копирование с помощью конструктора копий, как вы вскоре убедитесь, строго воспрещается. И все же люди, вооруженные оператором &, неизменно пытаются копировать объект. С оператором * соблазн намного слабее. Во всем остальном выбор - дело вкуса.


Назад    Содержание    Далее    

Home  Создание сайтов  Учебник по записи CD  Справочник Web дизайнера Самоучитель IE PHP и MySQL Компьютерные сети С++ E-mail me

Copyright 2007. Климов Александр. All Right Reserved.
Hosted by uCoz