К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Помогите понять логику С++ кода

Гость
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 :)


К списку вопросов






Copyright ©, Все права защищены