• Пожаловаться

Джесс Либерти: Освой самостоятельно С++ за 21 день.

Здесь есть возможность читать онлайн «Джесс Либерти: Освой самостоятельно С++ за 21 день.» весь текст электронной книги совершенно бесплатно (целиком полную версию). В некоторых случаях присутствует краткое содержание. категория: Программирование / на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале. Библиотека «Либ Кат» — LibCat.ru создана для любителей полистать хорошую книжку и предлагает широкий выбор жанров:

любовные романы фантастика и фэнтези приключения детективы и триллеры эротика документальные научные юмористические анекдоты о бизнесе проза детские сказки о религиии новинки православные старинные про компьютеры программирование на английском домоводство поэзия

Выбрав категорию по душе Вы сможете найти действительно стоящие книги и насладиться погружением в мир воображения, прочувствовать переживания героев или узнать для себя что-то новое, совершить внутреннее открытие. Подробная информация для ознакомления по текущему запросу представлена ниже:

Джесс Либерти Освой самостоятельно С++ за 21 день.

Освой самостоятельно С++ за 21 день.: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Освой самостоятельно С++ за 21 день.»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге широко представлены возможности новейшей версии программного продукта Microsoft Visual C++. Подробно описаны средства и подходы программирования современных профессиональных приложений. Материалы книги дополнены многочисленными демонстрационными программами, в процессе разработки которых максимально используются возможности программных инструментов Microsoft Visual Studio. Особое внимание уделено новинкам версии 6.0 и новейшим технологиям объектно-ориентированного программирования, включая использование библиотеки MFC и шаблонов классов, а также создание связанных списков. Отдельное занятие посвящено вопросам объектно-ориентированного анализа и проектирования приложений. Подробно рассмотрены все средства и подходы конструирования собственных пользовательских классов. Книга рассчитана на широкий круг читателей, интересующихся современными проблемами программирования.

Джесс Либерти: другие книги автора


Кто написал Освой самостоятельно С++ за 21 день.? Узнайте фамилию, как зовут автора книги и список всех его произведений по сериям.

Освой самостоятельно С++ за 21 день. — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Освой самостоятельно С++ за 21 день.», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

protected:

ListOfRoom rooms;

ListOfPerson people;

};

typedef long Room_ID;

class Room

{

public:

Room( String name, Room_ID id, int capacity. String directions description = "" );

~Room();

Calendar_Class Calendar();

protected:

Calendar_Class calendar;

int capacity;

Room_ID id;

String name;

String directions; // где этот гостиничный номер?

String description;

};

typedef long Person_ID;

class Person

{

public:

Person ( String name, Person_ID id );

~Person();

Calendar_Class Calendar(); // место доступа для добавления встреч

protected:

Calendar_Class calendar;

Person_ID id;

String name;

};

class Calendar_Class

{

public:

Calendar_Class();

~Calendar_Class();

void Add( const Meeting& ); // добавляем встречу в календарь

void Delete( const Meeting& );

Meeting* Lookup( Time ); // проверяем, не назначена ли уже встреча на это чис-

Block( Time, Duration, String reason = "" );

// резервируем время...

protected:

OrderedListOfMeeting meetings;

};

class Meeting

{

public:

Meeting( ListOfPerson&, Room room, Time when, Duration duration, String purpose = "" );

~Meeting();

protected:

ListOfPerson people;

Room room;

Time when;

Duration duration;

String purpose;

};

День 19

Контрольные вопросы

1. Какова разница между шаблоном и макросом?

Шаблоны являются средствами программирования языка C++, поддерживающими контроль за соответствием типов данных. Макросы выполняются препроцессором и не обеспечивают безопасности работы с типами.

2. В чем состоит отличие параметра шаблона от параметра функции?

Параметр шаблона используется для создания экземпляра шаблона для каждого типа. Если создать шесть экземпляров шаблонов, то будут созданы шесть различных классов или функций. Параметры функций определяют, какие данные передаются в функцию при ее вызове, но не могут использоваться для создания разных экземпляров одной функции.

3. Чем отличается обычный дружественный шаблонный класс от дружественного шаблонного класса, специализированного по типу?

Обычный дружественный шаблонный класс создает одну функцию для всех экземпляров параметризованного класса, а специализированный по типу дружественный шаблонный класс создает специализированные по типу экземпляры функции для каждого экземпляра параметризованного класса.

4. Можно ли обеспечить особое выполнение для определенного экземпляра шаблона?

Да. Создайте для конкретного экземпляра шаблона функцию, специализированную по типу. Чтобы изменить выполнение, например, для массивов целых чисел, помимо функции Array::SomeFunction(), создайте также функцию Array::SomeFunction().

5. Сколько создается статических переменных-членов, если поместить один статический член в определение класса шаблона?

По одной для каждого экземпляра класса.

6. Что представляют собой итераторы?

Это обобщенные указатели. Итератор можно инкрементировать, чтобы он указывал на следующий узел в последовательности. К нему также можно применить операцию разыменования, чтобы возвратить узел, на который он указывает.

7. Что такое объект функции?

Это экземпляр класса, в котором определен перегруженный оператор вызова функции (). Объект функции можно также использовать как обычную функцию.

Упражнения

1. Создайте шаблон на основе данного класса List:

class List

{

public:

List():head(0),tail(0), tbeCount(0) { }

virtual ~List();

void insert( int value );

void append( int value );

int is_present( int value ) const;

int is_empty() const { return head == 0: }

int count() const { return theCount; }

private:

class ListCell

{

public:

ListCell(int value, ListCell *cell = ):val(value),next(cell){ }

int val;

ListCell *next;

};

ListCell *head;

ListCell *tail;

int theCount;

};

Вот один из способов выполнения этого шаблона:

template

class List

{

public:

List():head(0),tail(0),theCount(0) { }

virtual ~List();

void insert( Type value );

void append( Type value );

int is_present( Type value ) const;

int is_empty() const { return head == 0; }

int count() const { return theCount; }

private:

class ListCell

{

public:

ListCell(Type value, ListCell *cell = O):val(value),next(cell) { }

Type val;

ListCell *next;

};

ListCell *head;

ListCell *tail;

int theCount;

};

2. Напишите выполнение обычной (не шаблонной) версии класса List.

void List::insert(int value)

{

ListCell *pt = new ListCell( value, head );

assert (pt ! = 0);

// эта строка добавляется для обработки хвостового узла

if ( head -= 0 ) tail = pt,

head = pt;

theCount++;

}

void List::append( int value )

{

ListCell *pt = new ListCell( value );

if ( head — 0 )

head = pt;

else

tail->next = pt:

tail = pt;

theCount++;

}

int List::is_present( int value ) const

{

if ( head == 0 )

return 0;

if ( head->val — value || tail->val == value )

return 1;

ListCell *pt = head->next;

for (; pt != tail; pt = pt->next)

if ( pt->val == value )

return 1;

return 0;

}

3. Напишите шаблонный вариант выполнения.

template

List::~List()

{

ListCell *pt = head;

while ( pt )

{

ListCell *tmp = pt;

pt = pt->next;

delete tmp;

}

head = tail = 0;

}

template

void List::insert(Type value)

{

ListCell *pt = new ListCell( value, head );

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Освой самостоятельно С++ за 21 день.»

Представляем Вашему вниманию похожие книги на «Освой самостоятельно С++ за 21 день.» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё не прочитанные произведения.


Отзывы о книге «Освой самостоятельно С++ за 21 день.»

Обсуждение, отзывы о книге «Освой самостоятельно С++ за 21 день.» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.