在C++中,如何在没有变量assign的情况下调用方法

How does call method without the variable assign in C++?

本文关键字:assign 情况下 方法 调用 变量 C++      更新时间:2023-10-16

我正在努力理解下面的代码。

#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赋值怎么工作?

没有x赋值怎么工作?

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

在实践中,它有时会起作用,因为A::Test()不依赖于任何成员数据。它不能保证在每个平台上都能工作。