【发布时间】:2016-08-28 21:15:15
【问题描述】:
我目前正在用 C++ 编写一段代码,但遇到了一些我不理解的行为。假设我有一个自定义类(我不确定类内部发生的事情是否重要)并且我想创建一个指向该类的指针:
AliAODEvent* aod;
现在,在我创建了这个指针之后,我想将它分配给一个内存位置。在我正在使用的框架中,我要指向的对象已经存在于某个地方,所以我所做的是
AliAODEvent* aod = (This is where the object I want to point to goes);
我现在意识到我应该只使用aod=(Object to point to); 但我很好奇当我试图基本上“重新初始化”指针时发生了什么。有什么想法吗?
【问题讨论】:
-
你应该得到某种编译错误,比如
error: redefinition of 'aod' -
除了已经说过的内容之外:请务必注意,与指针不同,引用不能被重新分配。除此之外,重新分配指针并没有什么特别之处,因为它只是一个保存内存地址的整数变量(假设是一种简化的方法)。
-
“我想将它分配给一个内存位置” - 请确保您理解术语“assign to”。在这里,您正在为指针分配一个值,反之亦然。这是基本的,注意你在编程中如何表达。
标签: c++ pointers initialization