我如何在参考上使用数据成员而不使用新关键字创建对象
How can I use data members on a reference without creating an object with new keyword?
class player{
public:
int a;
}
int main(){
player p1;
p1.a=10;
}
我创建了一个播放器的参考变量P1,而不是堆上的实际对象,因为我没有在P1上使用新的关键字。但是,C 编译器允许我为P1的数据成员" A"分配值10。如果没有堆上的对象?
您将C 与Java混淆。p1
不是参考,它只是具有自动存储持续时间的对象。它是在变量范围开始时创建的,并且当变量的范围结束时被破坏。
在C 中,通常仅使用" heap"(正确的单词是:免费商店),如果您需要对对象的寿命进行更复杂的控制。
如果您不需要此特殊控件,则C 中的对象就像int
或double
一样。您不会觉得有必要写new int
或new double
,是吗?好吧,在C 中,您的player
在这方面的作用像int
或double
。这与几乎所有其他流行的编程语言都是一个主要区别。
相关文章:
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何创建对象函数指针C++映射?
- C++创建对象数组
- 在 C++ 的 Switch Case 中创建对象后对对象调用方法
- 如何获取在 main() 函数中构造的类的创建对象?
- 基于文件中的条目创建对象
- 错误:创建对象后无法分配区域
- C++ 通过输入创建对象
- 堆还是堆栈用于创建对象?
- 使用 C++ 创建对象数组
- 使用unique_ptr创建对象
- C++递归地在类构造函数中创建对象
- 通过向构造函数其他对象引用页面来创建对象
- ReactiveX (rx) - 在对象上应用可观察对象,而不是在可观察对象中创建对象
- 如何在OSX上正确创建C++对象文件(.o)
- 我如何在参考上使用数据成员而不使用新关键字创建对象
- 使用新关键字创建的C 对象不会呈现;在堆栈上创建的对象确实可以
- 为什么不使用class关键字就无法创建对象
- 为什么当我们使用关键字创建对象时不调用析构函数"NEW"?
- new操作符——在c++中使用new关键字和不使用new关键字创建对象的区别