как склеить несколько char*, интересная загадка №2 |
Здравствуйте, гость ( Вход | Регистрация )
как склеить несколько char*, интересная загадка №2 |
Алексей1153 |
17.10.2011, 19:31
Сообщение
#21
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Iron Bug, не, я же не спорю, что случаи разные бывают. Насчёт же побайтового копирования - неважно, класс это или структура (это одно и то же) , если добавилась хоть одна виртуальная функция, то всё валится нахрен, и спорить тут не о чем Одно это уже много проблем создаст.
Насчёт умных компиляторов - я не имел в виду настолько умных ) Только явные оптимизации |
|
|
Iron Bug |
18.10.2011, 17:13
Сообщение
#22
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
неважно, класс это или структура (это одно и то же) это теоретически одно и то же. а на деле компиляторы имеют мелкие отличия. в частности, мелкософт не принимает списка инициализации в конструкторе структуры. и вот хоть тресни. это так, к слову. просто недавно напоролась. так что нифига они не равны и всё зависит от компилятора. при копировании побайтно все указатели (в том числе и указатель на таблицу виртуальных функций) будут просто скопированы. пока области памяти, на которые они ссылаются, живы - ничего страшного не случится. конечно, трудно придумать применение для таких вещей и сложно их отслеживать. но иногда бывает нужно подменять виртуальные таблицы вручную или вызвать какой-то метод напрямую через адрес, или запихать его в стек или ещё что-то такое подобное. просто нужно понимать механизмы работы классов и знать, что ты делаешь. Сообщение отредактировал Iron Bug - 18.10.2011, 17:14 |
|
|
Алексей1153 |
18.10.2011, 19:39
Сообщение
#23
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
Iron Bug |
19.10.2011, 7:49
Сообщение
#24
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
значит, у меня компилятор на большом проекте в очередной раз глюканул. он глючит, когда начинает собирать много библиотек в один заход. иногда просто зависает, иногда не может разрулить связи, хотя зависимости проектов проставлены. иногда надо вручную чистить всю его служебную информацию по проекту, чтобы он сожрал код.
но он мне прямо так и написал: мол, нельзя тут список инициализации использовать. вообще, это один из самых ненавистных для меня компиляторов: много непонятных и неожиданных багов и неоптимальный код на выходе. |
|
|
Алексей1153 |
19.10.2011, 10:24
Сообщение
#25
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Iron Bug, а ты чем пользуешься ? И где описание структуры расположено - может от компилятору этого есть разница, хз )
В студии бывает, что глюкнет и отказывается компилить, но закрываешь проект, удаляешь ncb, потом всё компилится |
|
|
Iron Bug |
19.10.2011, 12:20
Сообщение
#26
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
В студии бывает, что глюкнет и отказывается компилить, но закрываешь проект, удаляешь ncb, потом всё компилится иногда там не только их вроде удалять нужно. мне пока некогда разбираться, у меня работы дофига. вроде с тридесятого раза она сожрала проект. правда, я не знаю, какое конкретно шаманство привело её в рабочее состояние |
|
|
Алексей1153 |
20.10.2011, 0:21
Сообщение
#27
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Iron Bug, ты, наверное, его мало выгуливаешь, вот он и кочевряжится )))
|
|
|
Текстовая версия | Сейчас: 28.4.2024, 7:03 |