🗊 Презентация Популярные вопросы с IT-собеседований по языку С++

Нажмите для полного просмотра!
Популярные вопросы с IT-собеседований по языку С++, слайд №1 Популярные вопросы с IT-собеседований по языку С++, слайд №2 Популярные вопросы с IT-собеседований по языку С++, слайд №3 Популярные вопросы с IT-собеседований по языку С++, слайд №4 Популярные вопросы с IT-собеседований по языку С++, слайд №5 Популярные вопросы с IT-собеседований по языку С++, слайд №6 Популярные вопросы с IT-собеседований по языку С++, слайд №7 Популярные вопросы с IT-собеседований по языку С++, слайд №8 Популярные вопросы с IT-собеседований по языку С++, слайд №9 Популярные вопросы с IT-собеседований по языку С++, слайд №10 Популярные вопросы с IT-собеседований по языку С++, слайд №11 Популярные вопросы с IT-собеседований по языку С++, слайд №12 Популярные вопросы с IT-собеседований по языку С++, слайд №13 Популярные вопросы с IT-собеседований по языку С++, слайд №14 Популярные вопросы с IT-собеседований по языку С++, слайд №15 Популярные вопросы с IT-собеседований по языку С++, слайд №16 Популярные вопросы с IT-собеседований по языку С++, слайд №17 Популярные вопросы с IT-собеседований по языку С++, слайд №18 Популярные вопросы с IT-собеседований по языку С++, слайд №19 Популярные вопросы с IT-собеседований по языку С++, слайд №20 Популярные вопросы с IT-собеседований по языку С++, слайд №21

Содержание

Вы можете ознакомиться и скачать презентацию на тему Популярные вопросы с IT-собеседований по языку С++. Доклад-сообщение содержит 21 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


15 популярных вопросов с IT-собеседований по языку С++ Источник:
Описание слайда:
15 популярных вопросов с IT-собеседований по языку С++ Источник:

Слайд 2


1 Что получим на выходе? #include using namespace std; int f(); int x = 9; int main() { f(); cout
Описание слайда:
1 Что получим на выходе? #include using namespace std; int f(); int x = 9; int main() { f(); cout

Слайд 3


2 Что на выходе и почему? int main(int argc, char **argv) { std::cout
Описание слайда:
2 Что на выходе и почему? int main(int argc, char **argv) { std::cout

Слайд 4


3 Разберем код: #include class D { public: void foo() { std::cout
Описание слайда:
3 Разберем код: #include class D { public: void foo() { std::cout

Слайд 5


3 Когда используется виртуальное наследование? Исправим: #include class D { public: void foo() { std::cout
Описание слайда:
3 Когда используется виртуальное наследование? Исправим: #include class D { public: void foo() { std::cout

Слайд 6


4 Что означает модификатор virtual? В C++ виртуальные функции позволяют поддерживать полиморфизм – одну из ключевых составляющих ООП. С его помощью в...
Описание слайда:
4 Что означает модификатор virtual? В C++ виртуальные функции позволяют поддерживать полиморфизм – одну из ключевых составляющих ООП. С его помощью в классах-потомках можно переопределять функции класса-родителя. Без виртуальной функции мы получаем «раннее связывание», а с ней – «позднее связывание». То есть, какая реализация метода используется, определяется непосредственно во время выполнения программы и основывается на типе объекта с указателем на объект, из которого он построен.

Слайд 7


5 Пример использования виртуальной функции class Animal { public: void eat() { std::cout eat(); }
Описание слайда:
5 Пример использования виртуальной функции class Animal { public: void eat() { std::cout eat(); }

Слайд 8


5 Пример использования виртуальной функции Добавим функцию: void func(Animal *xyz) { xyz->eat(); } class Animal { public: void eat() { std::cout
Описание слайда:
5 Пример использования виртуальной функции Добавим функцию: void func(Animal *xyz) { xyz->eat(); } class Animal { public: void eat() { std::cout

Слайд 9


5 Пример использования виртуальной функции Исправим: void func(Animal *xyz) { xyz->eat(); class Animal { public: void virtual eat() { std::cout
Описание слайда:
5 Пример использования виртуальной функции Исправим: void func(Animal *xyz) { xyz->eat(); class Animal { public: void virtual eat() { std::cout

Слайд 10


6 Существует ли различие между классом и структурой? Единственное различие между классом и структурой – это модификаторы доступа. Элементы структуры...
Описание слайда:
6 Существует ли различие между классом и структурой? Единственное различие между классом и структурой – это модификаторы доступа. Элементы структуры являются общедоступными по умолчанию – public, а элементы класса – private. Рекомендуется использовать классы, когда вам нужен объект с методами, а иначе (простой объект) – структуры.

Слайд 11


7 Что не так с кодом? class A { public: A() {} ~A(){ } }; class B: public A { public: B():A(){} ~B(){ } }; int main(void) { A* a = new B(); delete a;...
Описание слайда:
7 Что не так с кодом? class A { public: A() {} ~A(){ } }; class B: public A { public: B():A(){} ~B(){ } }; int main(void) { A* a = new B(); delete a; }

Слайд 12


7 Что не так с кодом? Удаление объекта порожденного класса через указатель на базовый класс без виртуального деструктора (virtual ~) является...
Описание слайда:
7 Что не так с кодом? Удаление объекта порожденного класса через указатель на базовый класс без виртуального деструктора (virtual ~) является неопределенным поведением (undefined behavior) согласно стандарту C++11 §5.3.5/3. Вызов деструктора порожденного класса может работать, а может и нет, и нет никаких гарантий -> избегать такого.

Слайд 13


8 Что такое класс хранения? Класс, который определяет срок существования, компоновку и расположение переменных/функций в памяти. В C ++...
Описание слайда:
8 Что такое класс хранения? Класс, который определяет срок существования, компоновку и расположение переменных/функций в памяти. В C ++ поддерживаются такие классы хранения: auto, static, register, extern, mutable. Обратите внимание, что register устарел для C++11. Для C++17 он был удален и зарезервирован для будущего использования.

Слайд 14


9 Как вызвать функцию C в программе на C++? //C code void func(int i) { //code } void print(int i) { //code } Соглашение о вызове: в С и С++...
Описание слайда:
9 Как вызвать функцию C в программе на C++? //C code void func(int i) { //code } void print(int i) { //code } Соглашение о вызове: в С и С++ параметры передаются по разному (используя регистры и стек, но каждый по-своему).

Слайд 15


10 Что делает ключевое слово const? Задает константность объекта, указателя, а также указывает, что данный метод сохраняет состояние объекта (не...
Описание слайда:
10 Что делает ключевое слово const? Задает константность объекта, указателя, а также указывает, что данный метод сохраняет состояние объекта (не модифицирует члены класса). Пример с неизменяемыми членами класса: class Foo { private: int i; public: void func() const { i = 1; } };

Слайд 16


11 Виртуальный деструктор: что он собой представляет? Во-первых, он объявляется как virtual. Он нужен, чтобы с удалением указателя на какой-нибудь...
Описание слайда:
11 Виртуальный деструктор: что он собой представляет? Во-первых, он объявляется как virtual. Он нужен, чтобы с удалением указателя на какой-нибудь объект был вызван деструктор данного объекта. Например, у нас есть 2 класса: class base { public: ~base() { cout

Слайд 17


11 Виртуальный деструктор: что он собой представляет? Без виртуального деструктора будет выполняться только вызов деструктора базового класса, а...
Описание слайда:
11 Виртуальный деструктор: что он собой представляет? Без виртуального деструктора будет выполняться только вызов деструктора базового класса, а вызов производного деструктора - не будет. Получаем «утечку памяти». Поэтому необходимо деструктор базового класса сделать виртуальным (добавить virtual), тогда освобождение памяти будет корректным.

Слайд 18


12 Виртуальный конструктор: что он собой представляет? Каверзный вопрос с IT-собеседований, который чаще всего задают именно после виртуальных...
Описание слайда:
12 Виртуальный конструктор: что он собой представляет? Каверзный вопрос с IT-собеседований, который чаще всего задают именно после виртуальных деструкторов, дабы сбить кандидата с толку. Конструктор не может быть виртуальным, поскольку в нем нет никакого смысла: при создании объектов нет такой неоднозначности, как при их удалении.

Слайд 19


13. Сколько раз будет выполняться этот цикл? unsigned char half_limit = 150; for (unsigned char i = 0; i < 2 * half_limit; ++i) { //что-то...
Описание слайда:
13. Сколько раз будет выполняться этот цикл? unsigned char half_limit = 150; for (unsigned char i = 0; i < 2 * half_limit; ++i) { //что-то происходит; } Еще один вопрос с подвохом с IT-собеседований. Ответ был бы равен 300, если бы i был объявлен как int. Но поскольку i объявлен как unsigned char, правильный ответ – зацикливание (бесконечный цикл). Выражение 2 * half_limit будет повышаться до int (на основе правил преобразования C++) и получит значение 300. Но так как i – это unsigned char, он пересматривается по 8-битному значению, которое после достижения 255 будет переполняться, поэтому вернется к 0, и цикл будет продолжаться вечно.

Слайд 20


14. Каков результат следующего кода? #include class Base { virtual void method() {std::cout
Описание слайда:
14. Каков результат следующего кода? #include class Base { virtual void method() {std::cout

Слайд 21


15. Что мы получим на выходе? #include int main() { int a[] = {1, 2, 3, 4, 5, 6}; std::cout
Описание слайда:
15. Что мы получим на выходе? #include int main() { int a[] = {1, 2, 3, 4, 5, 6}; std::cout



Похожие презентации
Mypresentation.ru
Загрузить презентацию