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

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

08.08.2016, 18:40. Показов 9050. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru