Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/41: Рейтинг темы: голосов - 41, средняя оценка - 4.54
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826

Что на собеседовании показалось самым сложным

08.08.2016, 18:40. Показов 9028. Ответов 60
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер,

какой вопрос по С++ самый сложный ? Имеется ввиду вопросы на собеседованиях, очередной вопрос колеге за чашечкой кофе и т.д.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2016, 18:40
Ответы с готовыми решениями:

Какой экзамен, по вашему мнению, был самым сложным?
Какой экзамен был для вас самый сложный? Может быть, к которому было тяжело готовиться, или на котором преподы были принципиальные,...

Показалось, что снизилась производительность пк
Показалось, что снизилaсь производительность пк, решил в cpu-z бенче прогнать и что-то очень странные результаты какие-то,вроде, раньше...

Что спрашивают на собеседовании?
Заканчиваю универ, техническую специальность, опыта нет, хочу устроиться 1с-программистом. 1с-ку, бух.учет, бд все это знаю. Но в...

60
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 22:32
Лучший ответ Сообщение было отмечено hoggy как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrOffset Посмотреть сообщение
примеры кода пожалуйста под спойлер
так?
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
#include <iostream>
 
class Test
{
    void foo(){std::cout << "foo" << std::endl;}
};
 
 
typedef void (Test::*UT_PTR)();
 
 
UT_PTR hole_ptr = nullptr;
 
template<UT_PTR PTR>    
struct Hole {    
    struct Fake{
        Fake(){hole_ptr = PTR;}
    };
    static Fake fake;
};
 
template <UT_PTR ptr> typename Hole<ptr>::Fake Hole<ptr>::fake;
template class Hole<&Test::foo>;
 
 
int main() 
{    
    Test t;
    (t.*hole_ptr)();
}
http://rextester.com/RBNE67175
11
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.08.2016, 22:32
Цитата Сообщение от DrOffset Посмотреть сообщение
Нужно продемонстрировать полностью стандартный (легальный) способ вызвать приватную функцию чужого класса (класс менять нельзя).
DrOffset, не уж-то так:
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
class Class_Locked
{
private :
void foo(){cout<<"No passaran!";};
friend void func(Class_Locked & cl);//можно и класс объявить)
};
void func(Class_Locked & cl)
{
    cl.foo();// вот так?
}
 
int main(int argc, char* argv[])
{
Class_Locked a;
//a.foo(); //невозможно обратиться к private член, объявленному в классе "Class_Locked"
func(a);
cout<<endl;
system("pause");
return 0;
}

?
2
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
08.08.2016, 22:34
Цитата Сообщение от DrOffset Посмотреть сообщение
Нужно продемонстрировать полностью стандартный (легальный) способ вызвать приватную функцию чужого класса (класс менять нельзя).
Кликните здесь для просмотра всего текста

IMHO, полностью легального способа (т.е. без UB) не существует.
Кто не согласен - ссылочку на пункт стандарта, оправдывающий
такие грязно-хаки.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 22:35
Убежденный, при явном инстанцировании можно воспользоваться дырой в шаблонах, см. код выше
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
08.08.2016, 22:35
DrOffset, видимо, имеется в виду
Кликните здесь для просмотра всего текста
угнать адрес через nontype template parameter

Как я понял, предложенное HelicopterK52 решение это и делает.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
08.08.2016, 22:40
Кликните здесь для просмотра всего текста
HelicopterK52, ага. все верно.
IGPIGP, класс менять нельзя.
Nick Alte, если ты о решении HelicopterK52, то да.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 22:48
DrOffset,
решение давно валялось в закромах, но я еще один класс убрал:
убрал еще один не нужный класс
C++
1
2
3
4
5
6
7
8
template<UT_PTR PTR>    
struct Hole {
    Hole(){hole_ptr = PTR;}
    static Hole fake;
};
 
template <UT_PTR ptr> Hole<ptr> Hole<ptr>::fake;
template class Hole<&Test::foo>;
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
08.08.2016, 22:50
HelicopterK52, Что-то вообще ничего не понятно, надо наконец-то прочесть книгу по шаблонам.
2
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
08.08.2016, 22:50
Кликните здесь для просмотра всего текста

Надеюсь, что никогда такого не увижу в реальном коде.
Сломал мозг.

6
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 22:58
Лучший ответ Сообщение было отмечено Убежденный как решение

Решение

Цитата Сообщение от Убежденный Посмотреть сообщение
Кто не согласен - ссылочку на пункт стандарта, оправдывающий
такие грязно-хаки.
Цитата Сообщение от 14.7.2/12
The usual access checking rules do not apply to names used to specify explicit instantiations. [ Note: In particular, the template arguments and names used in the function declarator (including parameter types, return types and exception specifications) may be private types or objects which would normally not be
accessible and the template may be a member template or member function which would not normally be accessible. — end note ]
Так что никаких грязных хаков - всё в пределах стандарта.
Цитата Сообщение от GbaLog- Посмотреть сообщение
Что-то вообще ничего не понятно
Кликните здесь для просмотра всего текста
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
32
33
34
#include <iostream>
 
 
 
class Test
{
    void foo(){std::cout << "foo" << std::endl;}//Целевая функция-член
};
 
 
typedef void (Test::*UT_PTR)();//прост псевдоним для удобства
 
 
UT_PTR hole_ptr = nullptr;//Сюда запишем указатель на функцию-член foo класса Test
//Остается один вопрос. Как до него достучаться.
//А здесь нам поможет пункт 14.7.2/12 стандарта (приведен выше).
 
template<UT_PTR PTR>    
struct Hole {
    Hole(){
        hole_ptr = PTR;//В конструкторе записываем указатель
    }
    static Hole fake;
};
 
template <UT_PTR ptr> Hole<ptr> Hole<ptr>::fake;//При создании объекта fake вызовется конструктор, который и выполнит нужный нам "хак"
template class Hole<&Test::foo>;//Явно инстанцируем шаблон, здесь не действует private, так что пихаем указатель на функцию-член как параметр шаблона
 
 
int main() 
{    
    Test t;
    (t.*hole_ptr)();//Здесь уже всё нормально
}
16
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
08.08.2016, 22:58
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
#define private public
 
class Foo
{
private:
    void bar() { std::cout << "You shall not pass" << std::endl; }
};
 
#undef private
 
 
int main()
{
    Foo foo;
    foo.bar();
}
3
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
08.08.2016, 23:00
Цитата Сообщение от GbaLog- Посмотреть сообщение
надо наконец-то прочесть книгу по шаблонам.
В книгах про такое не пишут. Хотя книгу прочесть надо конечно
Цитата Сообщение от Убежденный Посмотреть сообщение
Надеюсь, что никогда такого не увижу в реальном коде.
Поэтому и не нужно такое спрашивать не собеседованиях.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
не достоин прийти на собеседование
Я лично про это ничего не говорил.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
08.08.2016, 23:00  [ТС]
avgoor,
Кликните здесь для просмотра всего текста
define ключевых слов UB
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
08.08.2016, 23:01
avgoor, флеймовый вопрос: будет ли тут нарушение ODR?
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 23:01
DrOffset, нарушению ODR быть (разный поток токенов)
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
08.08.2016, 23:01
HelicopterK52, спасибо, супер!
Люблю Киберфорум, за полчаса узнал больше, чем за всю прошлую неделю!
6
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
08.08.2016, 23:09
DrOffset, Будет. Но я не уверен, что существует способ без UB вообще. Например, вышеприведенный код в студии не работает (там вообще много чего связанного с шаблонами работает не так, как в gcc).
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 23:11

Не по теме:

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
то я только могу заполнить заявку в МакДональс
Вы можете готовить блинчики? Я - нет. Я вообще не могу готовить, разве что пельмешей наваять - с нула (фаршик, тесто и т.д.).
Салатик могу порубать и яичек поджарить, али сварить. На этом мои кулинарные навыки кончаются. Ах, да, могу еще картошку пожарить, но только до состояния углей :D

P.S. Шашлык не еда, его в расчет не берем.



Добавлено через 29 секунд
Цитата Сообщение от avgoor Посмотреть сообщение
Например, вышеприведенный код в студии не работает
Это студия не работает. Там вообще что должно - не работает, что не должно - работает
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
08.08.2016, 23:14
Цитата Сообщение от avgoor Посмотреть сообщение
Например, вышеприведенный код в студии не работает
В 2013 точно работает, прям вот сейчас собрал
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 23:15

Не по теме:

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Минуснул, отписался, пожаловался на сообщение, пошёл взламывать страничку вконтакте!!!!111
Забыли петицию накатать :)



Добавлено через 1 минуту
Цитата Сообщение от DrOffset Посмотреть сообщение
В 2013 точно работает, прям вот сейчас собрал
На рекстестере тож не собирается: http://rextester.com/KCO99449
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2016, 23:15

Что ожидать на собеседовании?
Доброго времени суток. Хотелось бы узнать у вас на что я могу рассчитывать при устройстве на работу и какие вопросы скорее всего будут на...

Что мне задавали на собеседовании
Добрый день, уважаемые коллеги. Совсем недавно посетил интервью (компанию опускаю) на вакансию Программист .NET (язык C#, VB.NET). Хочу...

Что спрашивают на собеседовании на сеньора
Привет всем я джуниор -хотел поитересоваться что спрашивают на собеседовании на сеньора?

Что спрашивают на собеседовании junior c# developer?
Я боюсь идти первый раз на собеседование поделитесь опытом пожалуйста

Что спросят на собеседовании в компании систем мониторинга и диагностики
Завтра иду на собеседование в компанию, занимающуюся системами мониторинга и диагностики роторных и поршневых машин на вакансию...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru