if (this != null):
#include <iostream>
class Bass {
  private:
   char c;
   int i;
  public:
  Bass(const int i) {
   this->i = i;
  };
  void crashMePlease() const {
    std::cout << "value:" << &(this->i) << std::endl;
  };
};
int main(int argc, char *argv[]) {
  std::cout << "sizeof(char):" << sizeof(char) << std::endl << "sizeof(int):" << sizeof(int) << std::endl;
  Bass *bass = 0;
  bass->crashMePlease();
  return 0;
};Что будет результатом выполнения ? Свалиться ли в segfault или же не свалиться, а если не свалиться, то что скажет ?
Наверняка, для матёрых C++ программистов это пустяковый вопрос, поэтому приведу ответ:
$ g++ main.cpp -o mainИ позже попытаюсь объяснить почему же именно так, а не иначе :)
$ ./main
sizeof(char):1
sizeof(int):4
value:0x4
 
 
Комментариев нет:
Отправить комментарий