主题:DefaultListSize的问题
我在看很多类型的时候,在定义类型长度是,DefaultListSize这个变量并没有声明阿?
随便举个例子,以下是电子工业出版社的数据结构与算法分析(C++第二版)关于链式栈的一段定义
[code]
template <class Elem> class LStack: public Stack<Elem> {
private:
Link<Elem>* top; // Pointer to first element
int size; // Count number of elements
public:
LStack(int sz=DefaultListSize) { top = NULL; size = 0; }
~LStack() { clear(); } // Destructor
void clear() {
while (top != NULL) { // Delete link nodes
Link<Elem>* temp = top;
top = top->next;
size = 0;
delete temp;
}
}
bool push(const Elem& item) {
top = new Link<Elem>(item, top);
size++;
return true;
}
bool pop(Elem& it) {
if (size == 0) return false;
it = top->element;
Link<Elem>* ltemp = top->next;
delete top;
top = ltemp;
size--;
return true;
}
bool topValue(Elem& it) const {
if (size == 0) return false;
it = top->element;
return true;
}
int length() const { return size; }
};
[/code]
在LStack(int sz=DefaultListSize) { top = NULL; size = 0; }这行代码里的DefaultListSize就没有定义阿?Stack类里面也没有定义它
高手帮忙解释下吧
随便举个例子,以下是电子工业出版社的数据结构与算法分析(C++第二版)关于链式栈的一段定义
[code]
template <class Elem> class LStack: public Stack<Elem> {
private:
Link<Elem>* top; // Pointer to first element
int size; // Count number of elements
public:
LStack(int sz=DefaultListSize) { top = NULL; size = 0; }
~LStack() { clear(); } // Destructor
void clear() {
while (top != NULL) { // Delete link nodes
Link<Elem>* temp = top;
top = top->next;
size = 0;
delete temp;
}
}
bool push(const Elem& item) {
top = new Link<Elem>(item, top);
size++;
return true;
}
bool pop(Elem& it) {
if (size == 0) return false;
it = top->element;
Link<Elem>* ltemp = top->next;
delete top;
top = ltemp;
size--;
return true;
}
bool topValue(Elem& it) const {
if (size == 0) return false;
it = top->element;
return true;
}
int length() const { return size; }
};
[/code]
在LStack(int sz=DefaultListSize) { top = NULL; size = 0; }这行代码里的DefaultListSize就没有定义阿?Stack类里面也没有定义它
高手帮忙解释下吧