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

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

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

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

29.07.2015, 13:22. Просмотров 4221. Ответов 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
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,047
Записей в блоге: 17
30.07.2015, 19:25 #61
Ок и какие языки вы считаете эти "нормальными" ?
0
rikimaru2013
C++ Game Dev
2439 / 1133 / 240
Регистрация: 30.11.2013
Сообщений: 3,690
30.07.2015, 21:51  [ТС] #62
Есть ли смысл давать тестовое задание ( что-то типа свой умный указатель, быстрая сортировка, демонстраций одного из паттернов) ? Ведь джун волнуется, руки трусятся, вероятнее всего дома стационарный комп и к ноутбуку не привык.
0
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.07.2015, 22:22 #63
Цитата Сообщение от Voivoid Посмотреть сообщение
мне например нравится задача написать свой, несколько упрощенный, аналог shared_ptr
мне тоже понравилась задача решу на досуге)
Цитата Сообщение от ct0r Посмотреть сообщение
Можно начать с вопроса: а зачем нам может понадобиться свой, а не стандартный shared_ptr?
а можно получить ответ на этот вопрос?

rikimaru2013, что за глупость про не привычку к ноутбуку? да смысл есть, но лучше оставить джуна одного и дать времени чтобы хватило справиться с волнением и взять себя в руки. Но эт конечно, ИХМО
0
Butt-Head
Заблокирован
30.07.2015, 22:28 #64
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
если вы бы проводили собеседования по С++ для джуна - какой вопрос по С++ вы бы припасли как самый сложный?
Очевидно же:
You have a 1TB file containing integers (one number per line). You have 2GB of memory. How do you sort this file as fast as possible?
0
rikimaru2013
C++ Game Dev
2439 / 1133 / 240
Регистрация: 30.11.2013
Сообщений: 3,690
30.07.2015, 22:47  [ТС] #65
Цитата Сообщение от ыфырф1992 Посмотреть сообщение
что за глупость про не привычку к ноутбуку?
у меня 7 лет одна марка клавиатуры, и 3 года одна мышка. Когда я сажусь за другой комп (я молчу уже про ноутбук) - я испытываю дискомфорт, и скорость написания падает на 30% минимум.
0
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
30.07.2015, 22:50 #66
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Есть ли смысл давать тестовое задание ( что-то типа свой умный указатель, быстрая сортировка, демонстраций одного из паттернов) ?
Никогда не видел смысла в тестовых заданиях.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
что-то типа свой умный указатель
Можно просто поговорить по RAII и т. д..
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
быстрая сортировка
Для практики достаточно помнить лишь один алгоритм сортировки. Помнить все остальные - пустая трата времени, они описаны в любой книге по алгоритмам. Лучше помнить, какой будет работать лучше с теми или иными данными.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
демонстраций одного из паттернов
Практическая польза паттернов - ооооочень спорная тема. Может, стоит сначала спросить, какие паттерны человек применял на практике, и зачем? Вдруг он разумен и не уродовал код ими.
0
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.07.2015, 22:54 #67
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
скорость написания падает на 30%
дайте больше времени
0
0x10
2479 / 1652 / 248
Регистрация: 24.11.2012
Сообщений: 4,095
31.07.2015, 04:34 #68
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Есть ли смысл давать тестовое задание ( что-то типа свой умный указатель, быстрая сортировка, демонстраций одного из паттернов) ?
Иногда дают что-нибудь. Может даже совсем простое, для написания на бумажке. Просто посмотреть: кандидат код-то умеет писать? А то всякое бывает.

Тестовое задание могут дать до очных собеседований, на дом. Практика показывает, что даже простое задание отсеивает многих кандидатов.

Не по теме:

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Когда я сажусь за другой комп (я молчу уже про ноутбук) - я испытываю дискомфорт, и скорость написания падает на 30% минимум.
На скорость никто не станет обращать внимания. Не на машинистку же устраиваемся. Дискомфорт тоже объясним и ожидаем, но делать из этого проблему как-то смешно. У меня самого не совсем стандартная конструкция, что не мешает при необходимости работать за другими девайсами. Главное, чтобы были исправны.

0
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
31.07.2015, 08:14 #69
Цитата Сообщение от 0x10 Посмотреть сообщение
конструкция

Не по теме:

170 не наших отдали? И как, стоит оно того? А вы десятью пальцами на ней печатаете?

0
hoggy
6701 / 2883 / 494
Регистрация: 15.11.2014
Сообщений: 6,480
Завершенные тесты: 1
31.07.2015, 16:09 #70
Цитата Сообщение от ct0r Посмотреть сообщение
hoggy, я пишу с телефона, но если ты сам копирнешь код в любой онлайн-компилятор с С++03, то убедишься, что код нормально отрабатывает. И в С++11 будет нормально, если прописать деструктору noexcept(false). Все дело в разной умолчательной спецификации исключений.
http://rextester.com/LZLARW16805

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
27
28
29
30
31
//Title of this code
//g++  4.9.2
 
#include <iostream>
 
 
struct sample
{
    ~sample() 
    {throw 1; }
};
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    try
    { 
        sample s; 
    }
    catch(... )
    {
        std::cout << "upppsss!\n";
    }
    
    std::cout << "success!\n";
    
    
    
}
про noexcept(false) не знал.
спасибо.

Добавлено через 53 минуты
Цитата Сообщение от Ilot Посмотреть сообщение
Повторять одно и то же не собираюсь. Я все сказал здесь и здесь
ваш собственный код наглядно демонстрирует, что ни объекты,
ни структуры не могут быть нулевого размера.
и вы не сможете получить sizeof объекта или структуры равным нулю.

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

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

так например, ответ на заданный вами вопрос:
это связанно с особенностями выравнивания данных.

но могут быть и другие парадоксы:
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
27
28
29
//Title of this code
//g++  4.9.2
 
#include <iostream>
 
struct some
{
    some(int (&a)[256]): a(a){}
    
    int (&a)[256];
};
 
int main()
{
    std::cout << "Hello, world!\n";
    
    
    int a[256];
    
    some s(a);
    
    
    std::cout << "size of class: " << sizeof(some) <<'\n';
    std::cout << "size of member of class: " << sizeof(some::a) <<'\n';
    
    if( sizeof(some) < sizeof(some::a) )
        std::cout<< "о боже! размер отдельно взятого члена почему то оказался больше,"
               " чем размер всего класса\n";
}
в этом примере размер класса и его членов попадает под правило о ссылках.
-----------------------------------------------

но это все приколы "типо-образования".

и к тезису о том,
что стуктуры(или объекты) якобы могут иметь нулевой размер,
отношения не имеет.
1
ct0r
Игогошка!
1776 / 678 / 42
Регистрация: 19.08.2012
Сообщений: 1,294
Завершенные тесты: 1
31.07.2015, 16:40 #71
Цитата Сообщение от Avazart Посмотреть сообщение
Ок и какие языки вы считаете эти "нормальными" ?
Нет, я называть конкретно не буду, дабы не уйти от темы и не скатиться в очередной холивар.

Цитата Сообщение от ыфырф1992 Посмотреть сообщение
а можно получить ответ на этот вопрос?
Если у нас есть много std::shared_ptr в разных потоках, указывающих на один объект, то функции-члены этих std::shared_ptr thread-safe. Это обеспечивается атомарными операциями (над счетчиком с memory_order_relaxed например) внутри них. Поэтому если мы обращаемся всего лишь в одном потоке и не хотим платить скоростью за атомарность операций, то лучше использовать свой unsafe вариант.
Кстати замечу касательно реализации std::shared_ptr в libstdc++. Если она была собрана без опции --enable-threads, то все окей, атомарные операции не будут использоваться. Или если у нас в программе всего лишь один поток, то тоже не будут.

Цитата Сообщение от hoggy Посмотреть сообщение
http://rextester.com/LZLARW16805
Ага, падает, потому что С++11. Если там убрать опцию компилятора -std=c++11, то перестанет. Кстати почему rextester? Мне например http://melpon.org/wandbox/ больше нравится.

Цитата Сообщение от hoggy Посмотреть сообщение
про noexcept(false) не знал.
спасибо.
Кстати noexcept наконец-то нормальная вещь. Не то что старый throw, которым пользоваться себе дороже.
1
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
31.07.2015, 16:46 #72
hoggy, sizeof это всего лишь оператор. Реально только адрес переменных в памяти. Так вот если адрес объекта b в моем примере равен адресу переменной b.x то очевидно что на часть базового класса в объекте b предоставляется 0 байт.
Что касается вашего примера то как говорил один бобер: "Ты не о том думаешь!".
Тут же в соседней теме подробно объясняется что есть ссылка. Так что не стоит вводить меня в заблуждение.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,047
Записей в блоге: 17
31.07.2015, 17:03 #73
Цитата Сообщение от ct0r Посмотреть сообщение
Нет, я называть конкретно не буду, дабы не уйти от темы и не скатиться в очередной холивар.
Ну тогда слив засчитан. Ибо говоришь А- говори Б.
0
ct0r
31.07.2015, 17:16
  #74

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
Ну тогда слив засчитан. Ибо говоришь А- говори Б.
Хочу - говорю, хочу - не говорю. "Засчитывать сливы" можешь сколько душе угодно, хоть звездочки у себя на бачке выбивай гвоздем

0
hoggy
6701 / 2883 / 494
Регистрация: 15.11.2014
Сообщений: 6,480
Завершенные тесты: 1
31.07.2015, 18:03 #75
Цитата Сообщение от Ilot Посмотреть сообщение
sizeof это всего лишь оператор.
изначально речь шла о том, что размер структур и объектов не может быть ноль.
sizeof - это всего лишь оператор,
который возвращает размер структур или объектов.

Цитата Сообщение от Ilot Посмотреть сообщение
что на часть базового класса в объекте b предоставляется 0 байт.
"часть базового класса" - не является ни объектом, ни структурой.
это не более, чем абстракция в вашей голове.

если наследник скастит сам себя к своей базе,
то sizeof результата окажется таким же,
как и sizeof самого базового класса.

ну нужно путать понятие "объект" и "часть класса".
первое вторым не является.

Цитата Сообщение от Ilot Посмотреть сообщение
Что касается вашего примера то как говорил один бобер: "Ты не о том думаешь!".
целью демонстрации было показать,
что не нужно полагать что размер "целого" слагается из его "частей".

специально, в надежде, что адрес поймёт:
не нужно отожествялть "объект" или "структуру" с "частью структуры".
1
31.07.2015, 18:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 18:03
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
75
Ответ Создать тему
Опции темы

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