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

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

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

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

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

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

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

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

5. При выводе на экран значения в указателе pLong порядок байтов изменяется на 00 01 00 14, что эквивалентно числу 65556.

Рекомендуется: Создавайте объекты в области динамического обмена.

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

Не рекомендуется: Не забывайте каждое выделение свободной памяти с помощью оператора new сопроводить освобождением памяти с помощью оператора delete. Незабывайте присваивать освобожденным указателям нулевые значения.

Вопросы и ответы: Какая разница между пустым и блуждающим указателями?

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

Присваивая указателю нулевое значение, например следующим выражением: myPtr - 0:, вы тем самым превращаете блуждающий указатель в нулевой. Еще одна опасность блуждающих указателей состоит в том, что, дважды применив к одному и тому же указателю оператор delete, вы тем самым создадите неопределенную ситуацию, которая может привести к зависанию программы. Этого не случится, если освобожденному указателю будет присвоено нулевое значение. Присвоение освобожденному указателю — как блуждающему, так и нулевому — ново- го значения (т.е. использование выражения myPt r = 5) недопустимо, но если в случае с пустым указателем об этом вам сообщит компилятор, то в случае с блуждающим указателем вы узнаете об этом по зависанию программы в самый неподходящий момент.

Использование ключевого слова const при объявлении указателей

При объявлении указателей допускается использование ключевого слова const пе­ред спецификатором типа или после него. Корректны, например, следующие вариан­ты объявления:

const int * pOne;

int * const pTwo;

const int * const pThree;

В этом примере pOne является указателем на константу типа int. Поэтому значе­ние, на которое он указывает, изменять нельзя.

Указатель pTwo является константным указателем на тип int. В этом случае значе­ние, записанное по адресу в указателе, может изменяться, но сам адрес остается не­изменным.

И наконец, pThree объявлен как константный указатель на константу типа int. Это означает, что он всегда указывает на одну и ту же область памяти и значение, запи­санное по этому адресу, не может изменяться.

В первую очередь необходимо понимать, какое именно значение объявляется кон­стантой. Если наименование типа переменной записано после ключевого слова const, значит, объявляемая переменная будет константой. Если же за словом const следует имя переменной, константой является указатель.

const int * p1; // Укаэатоль на коисттпу типа ini

int * const p2; // Константный указаюль, всегда указывающий на одну и ту же область памяти

Использование ключевого слова const при объявлении указателей и функций-членов

Использование ключевого шва const при объявлении указателей и функции-членов

На занятии 4 мы обсудили вопрос об использовании ключевого слова const при объявлении функций-членов классов. При объявлении функции константной попытка внести изменения в данные объекта с помощью этой функции будут пресекаться компилятором.

Если указатель на объект объявлен константным, он может использоваться для вызова только тех методов, которые также объявлены со спецификатором const (листинг 8.10).

Листинг 8.10. Указатели на константные объекты

1: // Листинг 8.10.

2: // Вызов константных методов с помощью указателей

3:

4: flinclude

5:

6: class Rectangle

7: {

8: public:

9: Rectangle();

10: ~Rectangle();

11: void SetLength(int length) { itsLength = length; }

12: int GetLength() const { return itsLength; }

13: void SetWidth(int width) { itsWidth = width: }

14: int GetWidth() const { return itsWidth; }

15:

16: private:

17: int itsLength;

18: int itsWidth;

19: };

20:

21: Rectangle::Rectangle()

22: {

23: itsWidth = 5;

24: itsLength = 10;

25: }

26:

27: Rectangle::~Rectangle()

28: { }

29:

30: int main()

31: {

32: Rectangle* pRect = new Rectangle;

33: const Rectangle * pConstRect = new Rectangle;

34: Rectangle * const pConstPtr = new Rectangle;

35:

36: cout << "pRect width; " << pRect->GetWidth() << " meters\n";

37: cout << "pConstRect width: " << pConstRect-> GetWidth() << " meters\n";

38: cout << "pConstPtr width: " << pConstPtr-> GetWidth() << " meters\n";

39:

40: pRect->SetWidth(10);

41: // pConstRect->SetWidth(10);

42: pConstPt r->SetWidth(10); 43:

44: cout << "pRect width: " << pRect->GetWidth() << " meters\n";

45: cout << "pConstRect width:"<< pConstRect->GetWidth() << " meters\n";

46: cout << "pConstPtr width: " << pConstPtr->GetWidth() << " meters\n";

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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


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

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

x