如何在C ++中没有变量赋值的调用方法?

时间:2015-11-06 07:09:42

标签: c++ pointers c++builder

我正在尝试理解下面的代码。

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

class A
{
  public :
    void Test();
};

void A::Test()
{
   ShowMessage("Hello");
}

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
 A *x;
 x->Test();
}

当我调用Test方法时,我期待EAccessViolation错误。

没有x分配工作怎么办?

1 个答案:

答案 0 :(得分:4)

  

没有x分配工作怎么办?

理论上,发布的代码是未定义行为的原因。

实际上,它有效,因为A::Test()不依赖于任何成员数据。不保证在每个平台上都能正常工作。