0

Binary Search Tree (BST)のルートを UI 関数に渡そうとています (変更可能な変数として渡すか、呼び出された方法で渡す必要があります)。

main.cpp

cmd = UI.uiCmd()

BST<Matrix> *data = new BST<Matrix>;
Matrix mat;

UI.handle (cmd, mat, data); // passing command, class object, root of BST

ヘッダーの UI クラスには次のものがあります。

private:
void handle (int, Matrix, BST<Matrix *>);

および.cppファイルで:

void ui::handle(int cmd, Matrix matrix, BST<Matrix *> data)

私はどこかを台無しにしていることを知っていますが、私はどこを言うことができません。

私が得るエラー:BST<Matrix>&*関数が尋ねている間に考えますBST<Matrix> *

今のところC++をあまり使用する予定はないので、詳細な回答は(感謝していますが)必要ありません。

4

3 に答える 3

3

関数の署名は次のようになります

void handle (int, Matrix, BST<Matrix>*)

それ以外の

void handle (int, Matrix, BST<Matrix *>)
于 2012-06-14T11:30:47.093 に答える
2

まずBST<Matrix *>と同じではありませんBST<Matrix>*。1 つはポインターのコンテナーで、もう 1 つはコンテナーへのポインターです。

次に、関数に引数を変更させたい場合は、参照によって渡すことができます。

void ui::handle(int cmd, sMat matrix, BST<sMat>& data) 

そしてそれを次のように呼び出します

cmd = UI.uiCmd() 

BST<Matrix> data;
Matrix mat; 

UI.handle(cmd, mat, data);
于 2012-06-14T11:31:31.710 に答える
1

作成しました

    BST<Matrix> *data = new BST<Matrix>;

しかし、関数はBST<Matrix*>引数を要求しました。微妙な違いに注意

    BST<Matrix> * IS NOT same as  BST<Matrix*>
于 2012-06-14T11:31:04.910 に答える