请教关于类数据成员初始化的问题

discory 2013-04-15 12:02:20

template< class NODETYPE >
class List
{
public:
List(); //constructor
~List(); //destructor
void insertAtFront( const NODETYPE & );
void insertAtBack( const NODETYPE & );
bool removeFromFront( NODETYPE & );
bool removeFromBack( NODETYPE & );
bool isEmpty() const;
void print() const;
private:
ListNode< NODETYPE > *firstPtr; //pointer to first node
ListNode< NODETYPE > *lastPtr; //pointer to last node

//Utility function to allocate a new node
ListNode< NODETYPE > *getNewNode( const NODETYPE & );
};

//Default constructor
template< class NODETYPE >
List< NODETYPE >::List()
: firstPtr( 0 ), lastPtr( 0 ) { } //问题,数据成员*firstPtr和*lastPtr, 初始化写成 : *firstPtr(0), *lastPtr(0) 报错,为什么加指针符号就不对?

各位大虾帮解答
...全文
166 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
discory 2013-04-16
  • 打赏
  • 举报
回复
哦,有点理解了,我在看看
www_adintr_com 2013-04-15
  • 打赏
  • 举报
回复
且不是 -> 且不说
www_adintr_com 2013-04-15
  • 打赏
  • 举报
回复
且不是语法上的问题, 你还没 new 就 *firstPtr 解引用, 不是访问未初始化的指针了么. 你是要初始化节点里面的数据的话, 这样: template< class NODETYPE > List< NODETYPE >::List() : firstPtr(new ListNode< NODETYPE >(参数) ), lastPtr( new ListNode< NODETYPE >(参数) ) { }
csd1208 2013-04-15
  • 打赏
  • 举报
回复
你的这个类的数据成员是firstPtr和lastPtr 是两个指针,他们的数据是地址,而*firstPtr和*lastPtr是地址上面的数据啊
大神送一血 2013-04-15
  • 打赏
  • 举报
回复
指针都没初始化,怎么会指向具体的值?
www_adintr_com 2013-04-15
  • 打赏
  • 举报
回复
当然不一样. int* p = 0; int* p = new int(0); 会一样么.
discory 2013-04-15
  • 打赏
  • 举报
回复
引用 2 楼 adlay 的回复:
且不是语法上的问题, 你还没 new 就 *firstPtr 解引用, 不是访问未初始化的指针了么. 你是要初始化节点里面的数据的话, 这样: template< class NODETYPE > List< NODETYPE >::List() : firstPtr(new ListNode< NODETYPE >(参数) ), lastPtr( ……
用List< NODETYPE >::List() : firstPtr( 0 ), lastPtr( 0 ) { } 这种初始化方式是不是和你的一样呢?

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧