【问题标题】:C++ Sending a private class variable into a functionC ++将私有类变量发送到函数中
【发布时间】:2012-04-27 05:11:26
【问题描述】:

我正在用 C++ 编写一个处理二叉搜索树的程序。我正在使用一个包含类“treeNode”的 .h 文件,并且我有一个函数可以在树中搜索特定数字并返回一个关于是否找到该数字的布尔值。我的问题是我有一个名为“root”的“treeNode”类的私有类变量,它是一个指针,指向树中的第一个元素。我需要以某种方式将该变量从 .cpp 文件作为函数参数发送到搜索函数中。

我该怎么做?每次我尝试时,我都会收到一个错误,告诉我它是一个私有类变量。课程让我有点困惑。

谢谢!

【问题讨论】:

  • 如果搜索函数是类成员,为什么需要将根变量作为参数传递?
  • 我想我需要另一种方法来做到这一点

标签: c++ class private


【解决方案1】:

您可以参考此框架并构建您的类。

class treeNode
{
private:
    int data;
};

class tree
{
private:
    treeNode* root;

public:
    bool search(int data)
    {
    //root is accessible here. No need to pass as argument
    }
};

【讨论】:

    【解决方案2】:

    私有变量的想法是能够从您正在使用的当前类之外的任何东西中隐藏该变量/函数/等。即使派生类也可能无法访问私有变量。如果您使搜索函数成为存储树的类的成员函数,那么您将能够访问它。如果你想在类之外访问它,那么创建一个返回它的函数。

    附:如果您在此处发布代码,您可能会对如何更好地设计代码获得一些有用的见解。

    【讨论】:

      【解决方案3】:

      我有一个在树中搜索特定数字的函数

      你的函数是包含你的私有变量的类的一部分吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-18
        • 2012-11-23
        • 1970-01-01
        相关资源
        最近更新 更多