簡體   English   中英

C++中鏈表中的鏈表

[英]Linked-list in linked-lists in C++

我使用列表列表遇到了麻煩。 我使用的是單鏈表,鏈表由 3 個類(Node、ListIterator 和 List)組成,它們是模板類。 鏈表針對每種類型進行測試。 類 List 和其他類使用 operator<< 來避免打印功能。

我寫了一些偽代碼來顯示我的問題,?? 指出問題區域:

    class First
    { private:
    string name;    
    public:
        Tentamen (string n) : naam(n) {}
        friend ostream& operator<< (ostream& out, const First& f)
        { return out << "First: " << f.name << endl; }
    };

    class Second
    { private:
        string name;
        List<First> l1;
    public:
        Second(string n) : naam(n){}
        friend ostream& operator<< (ostream& out, const Second& s)
        {
           out << "Second: " << s.name << endl;
    ??     out << s.l1;
           return out;       
        }
    };

    int main()
    { //test lijst template

    //example use of List<T>
        List<string> list2; 
        list2.add( "strand" );     
        list2.add( "zon" );     
        cout << list2; //print

        List<Second> l2;
        l2.add(Student("Jip");
    ??  l2.l1.add("name");

        return 0;
    }

我可以為每種類型、每個班級列出清單。 問題出在 List 類型的 l2,我想訪問 l2 中 List 類型的 l1。 我無法訪問 l1,我已經嘗試了很多“朋友類”聲明和迭代器。

對於打印,我在類 Second, operator<< 中的 out << s.l2 上出現錯誤。 '錯誤:操作符<< in out << s.l2::l1 不匹配'

我希望它足夠清楚,如果不是,我將在早上(CET)進行編輯。 謝謝您的幫助。

正如評論中已經說過的,您應該發布List類模板的代碼。

話雖如此,我的猜測如下:

在您標記的行中l2.l1.add("name"); 您嘗試訪問類型為List<Second>l2的成員l1 看到被包裝的類Second有一個成員l1我假設你真的想訪問這個成員。 這意味着您必須先導航到要訪問的數據元素,然后才能對該數據元素進行操作。

如果不提供List的代碼,我們就無法說明如何訪問數據元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM