Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.66
rikimaru2013
C++ Game Dev
2436 / 1130 / 240
Регистрация: 30.11.2013
Сообщений: 3,688
#1

Собеседования по С++ для джуна - C++

29.07.2015, 13:22. Просмотров 4120. Ответов 100
Метки нет (Все метки)

Добрый день,

если вы бы проводили собеседования по С++ для джуна - какой вопрос по С++ вы бы припасли как самый сложный?

Кликните здесь для просмотра всего текста
Для меня пока, что самый сложный вопрос (который расскрыл бы многие области знания по С++) такой:
- опишите все факторы, которые влияют на размер экземпляра класса. Какой минимальный и максимальный размер пустого класса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2015, 13:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Собеседования по С++ для джуна (C++):

Трудоустройство: что нужно знать для успешного прохождения собеседования в самые крутые компании? - C++
Добрый вечер. Напишите пожалуйста список того, что нужно знать для успешного прохождения собеседования в самые крутые компании, c++...

Пример из собеседования по C++ - C++
Граждане, есть такой пример: class B { private: virtual void f() { std::cout << "B::f()" << std::endl;} public: void g() {...

Задания с++ с собеседования - C++
Предложите ваши варианты решения заданий 1. Перечислите все проблемы, которые вы видите в данном коде: class Foo { public: ...

Задание с собеседования (циклы) - C++
День добрый! Был сегодня на собеседовании, и было такое задание где было такое задание: Описать одним предложением что делает данная...

Задача с собеседования (аллокатор памяти) - C++
Вопрос звучит так: "Напишите быстрый аллокатор памяти" Как я его понимаю: можно пожертвовать растратой памяти, всякими наворотами,...

ООП. Тестовое задание собеседования. - C++
Это тестовое задание для устройста на работу. Я не совсем понимаю что от меня хотят. Не могли бы вы мне далее составить набросок плана...

100
Ilot
Модератор
Эксперт С++
1820 / 1178 / 232
Регистрация: 16.05.2013
Сообщений: 3,115
Записей в блоге: 5
Завершенные тесты: 1
29.07.2015, 15:40 #16
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Вы не читали мой пост про адресса? Если сравнивать адресса, то у них он есть - и он разных для каждого. 1 байт же ж. Сделано это в качестве оптимизации или еще как. 300 экземпляров = 300 байт.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
struct A {};
struct B : A {
    int x;
};
struct C: B {
    int y;
};
int main(){
    A a;
    B b;
    C c;
    std::cout << "sizeof(a) is " << sizeof(a);
    std::endl(std::cout);
    std::cout << "&B = " << &b;
    std::endl(std::cout);
    std::cout << "&B.x = " << &b.x;
    std::endl(std::cout);
    std::cout << "&C = " << &c;
    std::endl(std::cout);
    std::cout << "&c.x = " << &c.x;
    std::endl(std::cout);
    std::cout << "&c.y = " << &c.y;
    return 0;
}
Если размер структуры А 1 байт то почему адреса &b и &b.x равны?
0
Новичок
Модератор
1238 / 786 / 175
Регистрация: 17.07.2012
Сообщений: 4,225
Записей в блоге: 1
Завершенные тесты: 2
29.07.2015, 15:57 #17
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Или требовалось просто зазубрить значения, чтобы понимать когда надо вектор когда лист?
Достаточно понимать как работает структура данных и зубрить не придется. Логично что вставка в массив занимает линейное время (т.е за O(n) работает). Не сложно понять что сложность вставки элемента в список константная(O(1)). В общем достаточно знать как примерно реализованы контейнеры и не сложно будет понимать сложность алгоритмов вставки и.т.д.
0
rikimaru2013
C++ Game Dev
2436 / 1130 / 240
Регистрация: 30.11.2013
Сообщений: 3,688
29.07.2015, 16:16  [ТС] #18
Цитата Сообщение от Ilot Посмотреть сообщение
Если размер структуры А 1 байт то почему адреса &b и &b.x равны?
К сожелению вы не понимаете, что вы отвечаете. Прочитайте пост еще раз и еще раз, и поймите почему пустой класс не может НЕ иметь адресса. А раз ему нужен адресс он займет этот байт или возьмет его за основу у наследника, как вариант. Вы приводите пример, где он имеет адресс и совпадает с адрессом наследника - тоесть его размер 0, но адресс наследника и базового совпадают - через оптимизацию или еще как - не важно. Данный код внизу доказывает, пока не доказано в дискусии противоположное, что создавая новый экземпляр, программе нужно +1 байт памяти.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
class A
{
 
};
int main( )
{
    A a, b, c, d;
 
    cout << &a << endl;
    cout << &b << endl;
    cout << &c << endl;
    cout << &d << endl;
    cout << (&a == &b) << endl;
}
Добавлено через 1 минуту
Цитата Сообщение от Новичок Посмотреть сообщение
Достаточно понимать как работает структура данных и зубрить не придется. Логично что вставка в массив занимает линейное время (т.е за O(n) работает). Не сложно понять что сложность вставки элемента в список константная(O(1)). В общем достаточно знать как примерно реализованы контейнеры и не сложно будет понимать сложность алгоритмов вставки и.т.д.
Ну врядли тот человек на middle это не знал - думаю у него спросили в этом направлении более глубокий вопрос.
0
Ilot
Модератор
Эксперт С++
1820 / 1178 / 232
Регистрация: 16.05.2013
Сообщений: 3,115
Записей в блоге: 5
Завершенные тесты: 1
29.07.2015, 16:28 #19
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
и поймите почему пустой класс не может НЕ иметь адресса.
А кто говорит, что у объекта может не быть адреса? Похоже мы говорим о разных вещах... Я отвечаю на вопрос: Какой минимальный ... размер пустого класса.
Когда вам задают подобный вопрос на собеседовании, то будет неплохо если вы укажите на существание подобной ситуации. Но как говориться решать вам. Если вы сочли мое замечание не информативным я ни на чем настаивать не стану.
1
smartpointer
67 / 61 / 23
Регистрация: 17.02.2014
Сообщений: 256
29.07.2015, 17:29 #20
Я бы такой вопрос задал. Может ли существовать класс/структура размером в 1 байт имея на своем борту две переменные (хотя вопрос достаточно легкий)?
0
rikimaru2013
C++ Game Dev
2436 / 1130 / 240
Регистрация: 30.11.2013
Сообщений: 3,688
29.07.2015, 17:38  [ТС] #21
Цитата Сообщение от smartpointer Посмотреть сообщение
Я бы такой вопрос задал. Может ли существовать класс/структура размером в 1 байт имея на своем борту две переменные (хотя вопрос достаточно легкий)?
union? static class member?
0
Avazart
29.07.2015, 17:44
  #22

Не по теме:

Цитата Сообщение от ct0r Посмотреть сообщение
Будет terminate.
Что значит terminate?

0
smartpointer
67 / 61 / 23
Регистрация: 17.02.2014
Сообщений: 256
29.07.2015, 17:48 #23
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
union? static class member?
Как угодно, главное чтобы sizeof(x) выдал 1 байт - при заданном условии.Возможно ли такое ?
0
ct0r
Игогошка!
1776 / 678 / 42
Регистрация: 19.08.2012
Сообщений: 1,292
Завершенные тесты: 1
29.07.2015, 18:15 #24
Цитата Сообщение от Avazart Посмотреть сообщение
Что значит terminate?
Вот так будет:
terminate called after throwing an instance of 'int'

Aborted
То есть как только исключение покинет деструктор, будет вызвана функция std::terminate().
0
hoggy
6653 / 2841 / 486
Регистрация: 15.11.2014
Сообщений: 6,291
Завершенные тесты: 1
29.07.2015, 18:42 #25
Цитата Сообщение от Ilot Посмотреть сообщение
Может.
нет, не может.

согласно стандарту, вы можете создать массив объектов любого типа,
поэтому минимальный размер объекта - 1.
даже если он пустой.


нулевые массивы - это из области языка си, а не с++.
1
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,808
Записей в блоге: 17
29.07.2015, 18:45 #26
ct0r, Ну я как понимаю это новшества С++11, раньше бы исключение было бы отловлено.
0
hoggy
6653 / 2841 / 486
Регистрация: 15.11.2014
Сообщений: 6,291
Завершенные тесты: 1
29.07.2015, 18:48 #27
Цитата Сообщение от Avazart Посмотреть сообщение
ct0r, Ну я как понимаю это новшества С++11, раньше бы исключение было бы отловлено.
исключение в диструкторе и в с++03 приводило к самоуничтожению.
0
ct0r
Игогошка!
1776 / 678 / 42
Регистрация: 19.08.2012
Сообщений: 1,292
Завершенные тесты: 1
29.07.2015, 18:58 #28
Цитата Сообщение от Avazart Посмотреть сообщение
ct0r, Ну я как понимаю это новшества С++11, раньше бы исключение было бы отловлено.
Ты так говоришь, как будто С++11 это что-то очень новое

Добавлено через 3 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
исключение в диструкторе и в с++03 приводило к самоуничтожению.
Кстати нет, там этот код отработал бы нормально. Вот если явно приписать деструктору throw(), тогда да, все убилось бы.
0
hoggy
6653 / 2841 / 486
Регистрация: 15.11.2014
Сообщений: 6,291
Завершенные тесты: 1
29.07.2015, 19:01 #29
Цитата Сообщение от ct0r Посмотреть сообщение
Кстати нет, там этот код отработал бы нормально. Вот если явно приписать деструктору throw(), тогда да, все убилось бы.
исключение в диструкторе убивало весь процесс.
убивает и сейчас.
0
ct0r
Игогошка!
1776 / 678 / 42
Регистрация: 19.08.2012
Сообщений: 1,292
Завершенные тесты: 1
29.07.2015, 19:22 #30
hoggy, я пишу с телефона, но если ты сам копирнешь код в любой онлайн-компилятор с С++03, то убедишься, что код нормально отрабатывает. И в С++11 будет нормально, если прописать деструктору noexcept(false). Все дело в разной умолчательной спецификации исключений.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2015, 19:22
Привет! Вот еще темы с ответами:

Ищу задачки для собеседования - Java SE
Ищу всякие хитрые и не хитрые задачки, которые могут спрашивать на собеседованиях. Однажды уже был такой опыт, но тогда затупил на простой...

Вот такой тест скинули на Джуна, пока еще не решил - PHP
Вот такой тест на джуна, пока еще не знаю даже с чего начать!))

Подскажите пожалуйста, как ответить на вопрос про полиморфизм в JAVA в достаточном объеме для прохождения собеседования - Java SE
Здравствуйте. Подскажите пожалуйста, как ответить на вопрос про полиморфизм в JAVA в достаточном объеме для прохождения собеседования....

Задача с собеседования - C (СИ)
Всем привет! Недавно был на собеседование. Было много вопросов по строкам. Такое объявление строки я не видел ни разу char *A; и,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
29.07.2015, 19:22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru