类中成员函数可以直接使用私有成员,实现类的某些功能。但有时为了更好地隐藏具体实现或使用方便,可定义不带全部参数参数的公有接口名,再由接口函数去调用带有参数的重载函数(也可以为非重载函数),此时前者常称为驱动,调用带参数的接口函数时若要修改类内的私有资源一定要传递引用。
这里举例说明函数参数传递(没有实现完整类):
二叉查找树的部分实现:类中三个公有函数都调用私有函数实现对应功能,当欲改变私有数据成员时私有函数的参数一定为引用,即使传递的是指针。
1.节点(节点内元素为int型).
struct node{
int item;
node *left;
node *right;};
2.二叉查找树类实现:
class binarysearchtree{
private:
node *root=nullptr;//二叉树基本的私有成员—根节点
//...其他成员可根据实现定义
public:
binarysearchtree(){};
//...这里还有很多成员如复制构造、打印等,可根据实际需要进行定义
void insert(const node &);