1

重複の可能性:
非クラスのメンバーのリクエスト

そこで、ノードで構成される単一リンクリストであるADTを作成しました。これらのノードにはそれぞれ、データと呼ばれるオブジェクトへのポインタがあります。

Class Structure
{
    private:
        struct Node
        {
            Object *data;
            Node *next;
        };
        Node *head;
};

次のように、オブジェクト内の関数を呼び出そうとしています。

head = new Node;
head -> data = new Object();
head -> next = NULL;

cout << head -> data.print();

コンパイル時に次のエラーが発生し続けます。

エラー:「head-> Structure :: Node::data」のメンバー「print」のリクエスト。これは非クラスタイプの「Object」です*

編集:迅速な回答、素晴らしいコミュニティをありがとう。私の側の非常に愚かな間違い、私はばかみたいに感じますheh:P

4

3 に答える 3

1

dataポインタです、おそらくあなたは必要です

cout << head -> data -> print();

?または、関数printがそれ自体を印刷する場合は、おそらく

head -> data -> print();
于 2012-11-02T22:56:23.477 に答える
1

ポインタタイプの場合、メンバーにアクセスする->代わりに使用するか、最初にポインタを逆参照してからを使用する必要があるため、.*.cout << head->data->print()

于 2012-11-02T22:56:53.210 に答える
0

cout << head->data->print()代わりに、ドット演算子を使用してポインタからメソッドを呼び出すことcout << head->data.print()はできません。

于 2012-11-02T22:58:24.030 に答える