一些关于 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?
展开
 我来答
iamchenmin
2016-05-08 · TA获得超过1199个赞
知道小有建树答主
回答量:625
采纳率:50%
帮助的人:313万
展开全部
1,TreeIterator( const Tree<Object>& theTree )

参数里面的&符号,表示参数theTree是一个引用,引用和变量在访问上是一致的(即引用等价于变量)
const,修饰theTree引用,使得其在当前构造函数范围内不能被修改

2,virtual
接口函数声明,任何一个函数声明使用了virtual都代表了,这个函数的实现可以放在子类中,并且子类中的实现可以传给上一层(子类上转)

3,const TreeNode<Object> * current

模板

4,protected

protected限定类成员可被子类访问,而不能被其它任何域访问,即将数据暴露给子层,使得子层可以基于这些成员再作封装。
更多追问追答
追问
const TreeNode * current 是什么的模板呀?
追答
关于C++ 模板 template,请自行学习
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式