首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-04-20 
请教关于类数据成员初始化的问题template class NODETYPE class List{public:List()//constructor~List

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


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) 报错,为什么加指针符号就不对?

各位大虾帮解答
[解决办法]
你的这个类的数据成员是firstPtr和lastPtr 是两个指针,他们的数据是地址,而*firstPtr和*lastPtr是地址上面的数据啊
[解决办法]
且不是语法上的问题, 你还没 new 就 *firstPtr 解引用, 不是访问未初始化的指针了么.

你是要初始化节点里面的数据的话, 这样:
template< class NODETYPE >
List< NODETYPE >::List() 
    : firstPtr(new ListNode< NODETYPE >(参数) ), lastPtr( new ListNode< NODETYPE >(参数)  ) { } 
[解决办法]
指针都没初始化,怎么会指向具体的值?

热点排行