0
- 03.08.2012 - 22:57
|
Вот такой пример: #include <iostream> class Foo ** public: void foo() ** std::cout << "hello world" << std::endl; ** **; int main() ** Foo& foo = *(Foo*)NULL; foo.foo(); ** Выводит на экран "Hello world", хотя по здравому смыслу, не должен. Зачем компилятор позволяет вызывать метод несуществующего объекта? Просьба ногами сильно не пинать, я старый паскалист и не понимаю высоких тонкостей C++. | |
41
- 10.08.2012 - 15:56
| 39 по-моему изначально, но точно с .net fw 2.0 | |
43
- 03.03.2015 - 12:02
| Не уж то-) | |
44
- 03.03.2015 - 19:16
| 0-NTFS_ > по моему в с++ есть такая фишка, что при определении переменной-ссылки вызывается конструктор, резервируется пространство в стеке, а потом уже сверху на инициализированную переменную накатывается null :) | |
![]() | Интернет-форум Краснодарского края и Краснодара |