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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

5. Как вызвать функцию базового класса из объекта производного класса, если в производном классе эта функция была замещена?

Base::FunctionName();

6. Как вызвать функцию базового класса из объекта производного класса, если в производном классе эта функция не была замещена?

FunctionName():

7. Если в базовом классе функция объявлена как виртуальная, а в производном классе виртуальность функции указана не была, сохранится ли функция как виртуальная в следующем произведенном классе?

Да, виртуальность наследуется и не может быть отменена.

8. С какой целью используется ключевое слово protected?

Защищенные члены (которые объявлены с использованием ключевого слова protected) доступны для функций-членов производных объектов.

Упражнения

1. Объявите виртуальную функцию, которая принимает одно целочисленное значение и возвращает void.

virtual void SomeFunction(int);

2. Запишите объявление класса Square (квадрат), произведенного от класса Rectangle (прямоугольник), который, в свою очередь, произведен от класса Shape (форма).

class Square : public Rectangle

{ };

3. Предположим, что в предыдущем примере объект класса Shape не использует параметры, объект класса Rectangle принимает два параметра (length и width), а объект класса Square — один параметр (length); запишите конструктор для класса Square.

Square::Square(int length):

Rectangle(length, length)}}

4. Запишите виртуальный конструктор-копировщик для класса Square, взятого из упражнения 3.

class Square

{

public:

// ...

virtual Square * clone() const { return new Square(*this); }

// ...

};

5. Жучки: что неправильно в следующем программном коде?

void SomeFunction (Shape);

Shape * pRect = new Rectangle;

SomeFunction(*pRect);

Возможно, здесь все правильно. Функция SomeFunction ожидает получения объекта класса Shape. Вы передали ей объект класса Rectangle, произведенный от класса Shape. До тех пор пока вам не нужны никакие составные части класса Rectangle, такой подход будет нормально работать. Если же вам понадобятся члены класса Rectangle, придется изменить объявление функции SomeFunction, чтобы она принимала указатель или ссылку на объект класса Rectangle,

6. Жучки: что неправильно в следующем программном коде?

class Shape()

{

public:

Shape();

virtual ~ShapeO;

virtual Shape(const Shape&);

};

Нельзя объявить виртуальным конструктор-копировщик.

День 12

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

1. Как обратиться к первому и последнему элементам массива SomeArray[25]?

SomeArray[0], SomeArray[24]

2. Как объявить многомерный массив?

Напишите набор индексов для каждого измерения. Например,

SomeArray[2][3][2] — это трехмерный массив. Первое измерение содержит два элемента, второе — три, а третье — два.

3. Выполните инициализацию элементов многомерного массива, созданного при ответе на вопрос 2.

SomeArray[2][3)[2] = { { {1,2},{3,4},<5,6} } , { {7,8},{9,10},{11,12} } };

4. Сколько элементов содержит массив SomeArray[i0][5][20]?

10x5x20=1 ООО

5. Каково максимальное число элементов, которые можно добавить в связанный список?

Не существует никакого фиксированного максимума. Это зависит от объема доступной памяти.

6. Можно ли в связанном списке использовать индексы?

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

7. Каким является последний символ в строке "Сергей — хороший парень"?

8. Концевой нулевой символ.

Упражнения

1. Объявите двухмерный массив, который представляет поле для игры в крестики и нолики.

int GameBoard[3][3];

2. Запишите программный код, инициализирующий значением 0 все элементы созданного перед этим массива.

int GameBoard[3][3] = { {0,0,0},{0,0,0},{0.0,0} }

3. Объявите класс узла Node, поддерживающего целые числа.

class Node

{

public:

Node ();

Node (int);

~Node():

void SetNext(Node * node) { itsNext = node; }

Node * GetNextO const { return itsNext; }

int GetVal() const { return itsVal; }

void Insert(Node *);

void Display();

private:

int itsVal;

Node * itsNext;

};

4. Жучки: что неправильно в следующей программе?

unsigned short SomeArray[5][4];

for (int i = 0; i<4; i++)

for (int j = 0; j<5; j++)

SomeArray[i][j] = i+j;

Массив SomeArray предназначен для хранения 5x4 элементов, но код инициализирует матрицу 4x5 элементов.

5. Жучки: что неправильно в следующей программе?

unsigned short SomeArray[5][4];

for (int i=0: i<=5; i++)

for (int j = 0; j<=4; j++)

SomeArray[i][j] = 0;

Вероятно, программист хотел написать i < 5, но написал вместо этого i <= 5.

Программа будет работать, когда i == 5 и j == 4, но в массиве SomeArray нет такого

элемента, как SomeArray[5][4].

День 13

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

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

Интервал:

Закладка:

Сделать

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

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


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

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

x