请教关于类数据成员初始化的问题
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 >(参数) ) { }
[解决办法]
指针都没初始化,怎么会指向具体的值?