Возможно, не ультрамега, но вопросы довольно каверзные, особенно если от вас хотят получить полный и развернутый ответ. Потерять какую-то тонкость тут как два пальца.
И опять же - если хотите узнать ответ (знаете, но не уверены) - feel free to ask.
1) Классическое "почему нет частичной специализации функций".
2) Если есть класс, на который нет внешних указателей и ссылок, то можно ли его перемещать через memcpy?
3) Какие требования должны выполняться, чтобы можно было заменить new на malloc для класса?
4) Как получить pure virtual call exception?
5) Что хранится в vtable?
6) Какой sizeof у struct { char c1; double f1; short c2; }?
7) Зачем нужен typename?
8) Чем опасен printf и вообще использование ... в функциях?
9) Почему функции strcpy(), sprintf() и другие объявлены в новой версии как deprecated? Чем они страшны?
10) Как лучше возвращать такую структуру: struct f { double x; double y; double z; } - по значению или как-либо еще?
11) Можно ли в рекурсивной функции (глубина вызовов - несколько тысяч) разместить локальную переменную (массив) размером несколько сотен килобайт? Чем это чревато?
12) Как определить закольцованность списка?
Так, я порядочно уже всех достал своими дурацкими вопросами, поэтому с программированием пока завязываем, следующий пост будет о чем-то 3Dшном.
И опять же - если хотите узнать ответ (знаете, но не уверены) - feel free to ask.
1) Классическое "почему нет частичной специализации функций".
2) Если есть класс, на который нет внешних указателей и ссылок, то можно ли его перемещать через memcpy?
3) Какие требования должны выполняться, чтобы можно было заменить new на malloc для класса?
4) Как получить pure virtual call exception?
5) Что хранится в vtable?
6) Какой sizeof у struct { char c1; double f1; short c2; }?
7) Зачем нужен typename?
8) Чем опасен printf и вообще использование ... в функциях?
9) Почему функции strcpy(), sprintf() и другие объявлены в новой версии как deprecated? Чем они страшны?
10) Как лучше возвращать такую структуру: struct f { double x; double y; double z; } - по значению или как-либо еще?
11) Можно ли в рекурсивной функции (глубина вызовов - несколько тысяч) разместить локальную переменную (массив) размером несколько сотен килобайт? Чем это чревато?
12) Как определить закольцованность списка?
Так, я порядочно уже всех достал своими дурацкими вопросами, поэтому с программированием пока завязываем, следующий пост будет о чем-то 3Dшном.
ни на один вопрос я не отвечу, к сожалению. было бы что попроще..
ОтветитьУдалитьСходу на все вопросы ответить не смог.
ОтветитьУдалитьникогда не любил printf
ОтветитьУдалитьДля меня это глухой лес :)
ОтветитьУдалитьЯ только дельфи7 начинала но успешно забросила..
Не смог ответить на вопросы 1, 4, 5, 9, 11, 12
ОтветитьУдалитьДля меня тоже c++ темный лес. Java как то понятней для начинающий. И да, lets holywar begin!
ОтветитьУдалитьНужны вопросы полегче.
ОтветитьУдалить1) потому что частичная специализация и перегрузка функций делают одно и то же
ОтветитьУдалить2) можно, если нет внутренних ссылок и виртуального наследования (есть опасность сдвинуть базовый класс)
3) опять нельзя ничего "виртуального" плюс придется заменить все delete на free
4) вызвать у предка в конструкторе pure virtual function которая не была задана у потомка
5) адреса виртуальных функций, RTTI и смещение от this до области функций
6) 24, за счет выравнивания double и границы структуры на 8 байт, после перестановки f1 в начало - будет 16
7) typename реально необходим только если требуется прекомпиляция шаблонов (например этого требует vc2005)
8) при компиляции типы никак не проверяются, ошибку такого рода очень сложно отловить
9) потому что они не защищены от переполнения буфера
10) по указателю, чтобы избежать копирования (таких структур обычно много, будут лишние накладные затраты)
11) переполнение стека, рекурсивная функция со всем контентом аллоцируется при каждом вызове
12) пустить два указателя с шагом 1 и 2, если на каком-то шаге адреса совпадут - список закольцован
Мюсье w422g да вы шарите! Респект вам и уважуха а так же 4 (четыре) чая за счет заведения!
ОтветитьУдалитьмаловато я пока знаю...
ОтветитьУдалитьПредпочитаю кофе ^_^
ОтветитьУдалитьЯ не спец в Си, но на два вопроса ответить попытаюсь.
ОтветитьУдалить11) Может быть переполнение стека.
12) Первое, что пришло в голову - это сохранять в использованные адреса в память, а потом проверять не встречалось ли уже такого. Но выше товарищ предложил способ гораздо лучше.
лучше кофе выпей!
ОтветитьУдалитьFedor комментирует...
ОтветитьУдалитьНужны вопросы полегче.
Вопросы не нужны
на половину можно ответить не вникая даже в сам язык
ОтветитьУдалитьПознавательно.
ОтветитьУдалить