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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.90
Fantomайзэ
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 4
#1

Пример задания с сайта Яндекса =) - C++

22.08.2011, 14:39. Просмотров 4960. Ответов 24
Метки нет (Все метки)

Доброе время суток всем страждущим
Просматривая объявления вакансий для программистов не мог не заметить некую шаблонность что-ли, этих самых объявлений.
В них говориться что нужен специалист, профессионал.
Владение стандартными алгоритмами, знание основных структур данных , знание ООП и умение применять его на практике и тд...
А кто он ? Этот самый профессионал ?
В моем понимании профессионал это человек закончивший профильное образование и зарабатывающий себе на жизнь им. (нууу программист пишет программы )
Так же понятно что человек все на свете знать не может, а технологии довольно быстро развиваются

В связи с чем и вопрос, кто по вашему может считаться профессионалом и какими знаниями и навыками он должен обладать обязательно чтобы таковым считаться ? (Опыт само собой конечно )
Может есть какие-нибудь блин тесты ?? Там задания какие-нибудь ? Применительно к С и С++. Ну я утрирую конечно ... но решив которые можно было бы знать что ты обладаешь обязательным минимумом ...
блин все я сдаюсь
Ну вы меня поняли я надеюсь

Второй вопрос более предметный
Это тестовое задание с сайта Яндекса

Продемонстрируйте свои знания

Вопрос 1

Перечислите все проблемы, которые вы видите в данном коде:

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
class Foo
{
public:
    Foo(int j) { i=new int[j]; }
    ~Foo() { delete i; }
private:
    int* i;
};
 
class Bar: Foo
{
public:
    Bar(int j) { i=new char[j]; }
    ~Bar() { delete i; }
private:
    char* i;
};
 
 
void main()
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f=*b;
    delete f;
    delete b;
}
вот вы какие видите ?

Благодарю за внимание, ваш Фантомайзе
Уважаемые модераторы, прошу сильно не пинать меня, если я что не так разместил О_о ... или не там О_о
Хотел экспертам кинуть но мне туда ходу нет О_о

 Комментарий модератора 
Используйте теги форматирования кода!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2011, 14:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пример задания с сайта Яндекса =) (C++):

Задача от Яндекса на знание C++ - C++
Решил, в академических целях, посмотреть какие у Яндекса есть задачки на знание C++, встретил такую: Задание - исправить код, не меняя...

WinInet - Сохранить на диске главную страницу яндекса - C++
Нужно сохранить на диске главную страницу яндекса. Я делаю так: #include <Windows.h> #include <WinInet.h> #pragma comment(lib,...

Не компилируется пример пример! - C++
Добрый день, я только-только решил начать изучать програмирование на С++! Как учебное пособие использую книгу Стефана Р. Девитса "С++ для...

Нужен пример парсинга с гугла / рамблера / яндекса - C#
Всем пример , плиз скиньте пример вот такой вод софтины : а именно парсинг ссылок с гугла / яндекса / рамблера опр. запроса который...

Преобразования keys и values списков в словарь (задания от Яндекса для Python разработчика) - Lisp
http://company.yandex.ru/job/vacancies/dev_python_main.xml (вопрос 1). За None положим nil. В качестве словаря hash-table, alist,...

Вместо сайта Яндекса открывается ВКонтакте - Удаление вирусов
почему когда я открываю яндекс у меня вместо него открывается сайт Вконтакте, и при чем не грузится, а когда открываешь просто контакт, он...

24
LosAngeles
Заблокирован
22.08.2011, 14:49 #2
вот вы какие видите ?
самая важная - отсутсвие форматирования
несоответсвие форм операторов new и delete, ub
Цитата Сообщение от Fantomайзэ Посмотреть сообщение
class Bar: Foo
разве это не синтаксическая ошибка или компилятор по умолчанию поставит туда public уже не помню? но если он ставит туда что-то кроме public, то это ошибка

Цитата Сообщение от Fantomайзэ Посмотреть сообщение
Bar(int j) { i=new char[j]; }
не вызывается конструктор суперкласса
в наследнике и родителе переменные с одинаковым именем
деструктор не виртуальный, утечка памяти
0
Kastaneda
Jesus loves me
Эксперт С++
4688 / 2892 / 236
Регистрация: 12.12.2009
Сообщений: 7,353
Записей в блоге: 2
Завершенные тесты: 1
22.08.2011, 14:57 #3
Цитата Сообщение от LosAngeles Посмотреть сообщение
разве это не синтаксическая ошибка или компилятор по умолчанию поставит туда public уже не помню? но если он ставит туда что-то кроме public, то это ошибка
По умолчанию private, а в чем ошибка?

Цитата Сообщение от LosAngeles Посмотреть сообщение
в наследнике и родителе переменные с одинаковым именем
По-моему конфликтов быть не должно, Bar не видит переменную i из Foo.

+ ко всему еще нужно определить конструктор копирования в Foo, т.к. в классе есть члены-указатели.

Добавлено через 1 минуту
оператор присваивания я хотел сказать
0
Fantomайзэ
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 4
22.08.2011, 15:02  [ТС] #4
Цитата Сообщение от LosAngeles Посмотреть сообщение
самая важная - отсутсвие форматирования
несоответсвие форм операторов new и delete, ub

разве это не синтаксическая ошибка или компилятор по умолчанию поставит туда public уже не помню? но если он ставит туда что-то кроме public, то это ошибка

не вызывается конструктор суперкласса
в наследнике и родителе переменные с одинаковым именем
деструктор не виртуальный, утечка памяти
Насколько мне не изменяет память по умолчанию компилятор должен сгенерить спецификатор доступа по наследованию private О_о ... вроде бы ..
Суперкласс енто что за зверь такой ?! О_о Это базовый что-ли класс... ну в смысле родитель ? Нада погуглить впервый раз слышу такое
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
22.08.2011, 15:49 #5
давно как-то смотрел это задание ...
1) наследование закрытое
2) нет конструктора по умолчанию для Foo
3) main типа void
4) вместо delete[] delete
5) не говорящие имена переменных + имена в баз. и произв. классах совпадают
6) не перегружен оператор присваивания для Foo

что щас увидел

7) ах да конечно, деструктор не виртуальный
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
22.08.2011, 16:00 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Fantomайзэ Посмотреть сообщение
какими знаниями и навыками он должен обладать
Настоящий профессионал использует не менее пятидесяти смайликов на каждую тысячу слов.

Добавлено через 3 минуты
И, если придираться, то конструкторы без explicit объявлены.
3
LosAngeles
Заблокирован
22.08.2011, 16:09 #7
Цитата Сообщение от Kastaneda Посмотреть сообщение
По умолчанию private, а в чем ошибка?
тогда это ошибка потому что наследование приватное
Цитата Сообщение от Kastaneda Посмотреть сообщение
По-моему конфликтов быть не должно, Bar не видит переменную i из Foo.
с компилятором конфликтов нет, с програмистом который это написал - есть
Цитата Сообщение от Fantomайзэ Посмотреть сообщение
ну в смысле родитель
да
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
22.08.2011, 16:10 #8
Deviaphan,
вот кстати, никогда особо не понимал зачем всё таки этот explicit.
хороший тон и все дела , но какие реальные баги могут возникнуть ?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
22.08.2011, 16:12 #9
Цитата Сообщение от LosAngeles Посмотреть сообщение
тогда это ошибка потому что наследование приватное
Приватное наследование это не ошибка.)

Добавлено через 1 минуту
Цитата Сообщение от OstapBender Посмотреть сообщение
но какие реальные баги могут возникнуть ?
C++
1
Foo f = 3;
Вместо явного
C++
1
Foo f = Foo(3);
Соответственно, можно натворить делов и не заметить даже.
0
LosAngeles
Заблокирован
22.08.2011, 16:17 #10
Цитата Сообщение от Deviaphan Посмотреть сообщение
Приватное наследование это не ошибка.)
это почти всегда сигнализирует об ошибке проектирования, вместо этого существует агрегирование
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.08.2011, 16:22 #11
Цитата Сообщение от OstapBender Посмотреть сообщение
вот кстати, никогда особо не понимал зачем всё таки этот explicit.
хороший тон и все дела , но какие реальные баги могут возникнуть ?
при неявной иницилизации
C++
1
Foo obj = 3;
вызывается конструктор копирования, что нежелательно
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.08.2011, 16:25 #12
Maxwe11, Да вроде нет - http://liveworkspace.org/code/3a640b332ab101e1d1ebafecc29d76e6
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
22.08.2011, 16:30 #13
Цитата Сообщение от LosAngeles Посмотреть сообщение
это почти всегда сигнализирует об ошибке проектирования
boost::noncopyable, например. И никакого агрегирования.
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.08.2011, 16:32 #14
там у g++ версия выше, а сдесь кажись 4.4.1
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
22.08.2011, 16:33 #15
Цитата Сообщение от asics Посмотреть сообщение
Да вроде нет
Это уже компилятор мог наоптимизировать.) Суть не в этом. Можно случайно создать объект, того не желая. Точнее, ошибочно создать его.
0
22.08.2011, 16:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2011, 16:33
Привет! Вот еще темы с ответами:

Неправильная структура сайта в вебмастере яндекса - Yandex
Здравствуйте! Есть сайт probrelok.ru. Впервые решил сделать сайт на php. Добавлен в поиск 7 марта. Изначально структура сайта в вебмастере...

Строка поиска от гугла и яндекса для сайта - HTML, CSS
Здравствуйте, как мне вставить поисковую строку гугла и яндекса к себе на сайт? Что бы поиск именно осуществлялся не по моему сайту, а по...

Поднятие сайта с нуля в 5 -10 то яндекса. Как и сколько? - Yandex
Всем здравствуйте! Как думаете во сколько обойдётся поднятие сайта в топ 5 и 10 яндекса ? (фотографии и описание будет оригинальное т.е...

Удаление сайта в системе ucoz, созданный на базе narod.ru от Яндекса - Бесплатный хостинг
Здравствуйте, ребята. У меня возникла следующая проблема. Несколько лет назад создал небольшой сайт на Narod.ru (изучал работу с...


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

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

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