我如何在参考上使用数据成员而不使用新关键字创建对象

How can I use data members on a reference without creating an object with new keyword?

本文关键字:关键字 创建对象 数据成员 参考      更新时间:2023-10-16
class player{
   public:
      int a;
}
int main(){
   player p1;
   p1.a=10;
}

我创建了一个播放器的参考变量P1,而不是堆上的实际对象,因为我没有在P1上使用新的关键字。但是,C 编译器允许我为P1的数据成员" A"分配值10。如果没有堆上的对象?

怎么可能这

您将C 与Java混淆。p1不是参考,它只是具有自动存储持续时间的对象。它是在变量范围开始时创建的,并且当变量的范围结束时被破坏。

在C 中,通常仅使用" heap"(正确的单词是:免费商店),如果您需要对对象的寿命进行更复杂的控制。

如果您不需要此特殊控件,则C 中的对象就像intdouble一样。您不会觉得有必要写new intnew double,是吗?好吧,在C 中,您的player在这方面的作用像intdouble。这与几乎所有其他流行的编程语言都是一个主要区别。