2012-04-27 9 views
1

私はC++でバイナリ検索ツリーを扱うプログラムを書いています。私は、クラス "treeNode"を含む.hファイルを使用しています。そして、特定の番号のツリーを検索し、その番号が見つかったかどうかを真偽値を返す関数を持っています。私の問題は、 "treeNode"クラスの "root"という名前のプライベートクラス変数を持ち、これがポインタであり、ツリー内の最初の要素を指していることです。私は何とかその変数を関数パラメータとして.cppファイルから検索関数に送る必要があります。C++プライベートクラス変数を関数に送る

どうすればよいですか?私が試してみるたびに、それはプライベートクラス変数だと私に言ってエラーが発生します。クラスは私を少し混乱させます。

ありがとうございます!

+4

私たちにコードを教えてください。 – Klaim

+1

検索関数がクラスメンバである場合、なぜ引数としてルート変数を渡す必要がありますか? – cppcoder

+0

私はそれを行うには別の方法が必要だろうと思います –

答えて

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 
    } 
}; 
0

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

P.S.ここにコードを投稿すると、コードをどのように設計するかについての有益な洞察が得られるかもしれません。

0

私は特定の数

のツリーは、あなたのプライベート変数を持つクラスのあなたの機能の一部です検索機能がありますか?

関連する問題