【发布时间】:2017-06-15 08:21:46
【问题描述】:
我所做的只是声明一个指针,然后检查它是否指向任何东西:
#pragma once
#include <Node.h>
#include <stdio.h>
template <class NodeDataType>
class LinkedList
{
typedef Node<NodeDataType>* pNode;
private:
pNode pHead;
pNode pTail;
public:
void Add(NodeDataType* pNodeTypeData)
{
if(pHead)
{
printf("phead is initialized\n");
}
else
{
printf("phead is not initialized\n");
}
}
};
然后,在 main() 中,我正在创建一个新的 LinkedList 对象,并调用 Add
但是当我运行它时,它会输出pHead is initialized?
但我从未初始化它?
谁能给我解释一下?
谢谢
(主要)
#include <stdio.h>
#include <LinkedList.h>
#include <GameObject.h>
int main(int argc, char** argv)
{
LinkedList<GameObject> meList;
meList.Add(new GameObject());
return 0;
}
【问题讨论】:
-
这里可能有几处错误,请将代码也贴在 main 中,以便我们自己查看错误
-
它是否输出
initialized或uninitialized。因为您从不初始化pHead,而是在if (pHead)中检查它。 -
它的输出已初始化,尽管我从未这样做过。
-
能否请您复制整个输出。
标签: c++