1

私はC++で二分探索木を扱うプログラムを書いています。クラス「treeNode」を含む.hファイルを使用しており、ツリーで特定の番号を検索し、その番号が見つかったかどうかについてブール値を返す関数があります。私の問題は、「root」と呼ばれる「treeNode」クラスのプライベートクラス変数があり、これがポインターであり、ツリー内の最初の要素を指していることです。どういうわけか、その変数を.cppファイルから関数パラメーターとして検索関数に送信する必要があります。

どうすればよいですか?試行するたびに、それがプライベートクラス変数であるというエラーが表示されます。クラスは私を少し混乱させます。

ありがとう!

4

3 に答える 3

0

プライベート変数の考え方は、その変数/関数などを、現在作業しているクラス以外のものから隠すことができるようにすることです。派生クラスでさえ、プライベート変数にアクセスできない場合があります。検索関数をツリーが格納されているクラスのメンバー関数にすると、ツリーにアクセスできるようになります。クラスの外でアクセスしたい場合は、それを返す関数を作成します。

PSここにコードを投稿すると、コードをより適切に設計する方法について役立つ洞察を得ることができます。

于 2012-04-27T05:30:34.460 に答える
0

ツリーから特定の番号を検索する機能があります

関数は、プライベート変数を持つクラスの一部ですか?

于 2012-04-27T06:30:02.643 に答える
0

このスケルトンを参照して、クラスを構築できます。

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
    }
};
于 2012-04-27T05:26:12.687 に答える