一些关于 c++ treeIterator的问题 5
#ifndefTREEITERATOR_H#defineTREEITERATOR_H#include<iostream>#include"TreeNode.h"#incl...
#ifndef TREEITERATOR_H
#define TREEITERATOR_H
#include <iostream>
#include "TreeNode.h"
#include "Tree.h"
#include "BadIterator.h"
namespace cs20 {
template <class Object>
class TreeIterator {
public:
TreeIterator( const Tree<Object>& theTree );
virtual ~TreeIterator();
bool isValid() const;
virtual void advance() = 0;
virtual void first() = 0;
const Object& retrieve() const;
protected:
const TreeNode<Object> * current;
const TreeNode<Object> * root;
};
}
#endif
这个.h文件中 TreeIterator( const Tree<Object>& theTree )的 const Tree<Object>& theTree是什么意思呀, const 加不加有区别么? 还有virtual的作用是什么呀?const TreeNode<Object> * current;和 const TreeNode<Object> * root;的含义是什么? 为什么要用protected? 展开
#define TREEITERATOR_H
#include <iostream>
#include "TreeNode.h"
#include "Tree.h"
#include "BadIterator.h"
namespace cs20 {
template <class Object>
class TreeIterator {
public:
TreeIterator( const Tree<Object>& theTree );
virtual ~TreeIterator();
bool isValid() const;
virtual void advance() = 0;
virtual void first() = 0;
const Object& retrieve() const;
protected:
const TreeNode<Object> * current;
const TreeNode<Object> * root;
};
}
#endif
这个.h文件中 TreeIterator( const Tree<Object>& theTree )的 const Tree<Object>& theTree是什么意思呀, const 加不加有区别么? 还有virtual的作用是什么呀?const TreeNode<Object> * current;和 const TreeNode<Object> * root;的含义是什么? 为什么要用protected? 展开
1个回答
展开全部
1,TreeIterator( const Tree<Object>& theTree )
参数里面的&符号,表示参数theTree是一个引用,引用和变量在访问上是一致的(即引用等价于变量)
const,修饰theTree引用,使得其在当前构造函数范围内不能被修改
2,virtual
接口函数声明,任何一个函数声明使用了virtual都代表了,这个函数的实现可以放在子类中,并且子类中的实现可以传给上一层(子类上转)
3,const TreeNode<Object> * current
模板
4,protected
protected限定类成员可被子类访问,而不能被其它任何域访问,即将数据暴露给子层,使得子层可以基于这些成员再作封装。
参数里面的&符号,表示参数theTree是一个引用,引用和变量在访问上是一致的(即引用等价于变量)
const,修饰theTree引用,使得其在当前构造函数范围内不能被修改
2,virtual
接口函数声明,任何一个函数声明使用了virtual都代表了,这个函数的实现可以放在子类中,并且子类中的实现可以传给上一层(子类上转)
3,const TreeNode<Object> * current
模板
4,protected
protected限定类成员可被子类访问,而不能被其它任何域访问,即将数据暴露给子层,使得子层可以基于这些成员再作封装。
更多追问追答
追问
const TreeNode * current 是什么的模板呀?
追答
关于C++ 模板 template,请自行学习
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询