0

2 つのヘッダー ファイルは次のとおりです。

    #ifndef VIDEO_H
#define VIDEO_H

#include <string>
#include <iostream>
using namespace std;

class Video
{
public:
    Video(string title, string URL, string comment, float length, int rating);
    ~Video();
    void print();
    bool longer(Video *Other);
    bool higher(Video *Other);
    bool alphabet(Video *Other);
private:
    string m_title;
    string m_url;
    string m_comment;
    float m_length;
    int m_rating;
};




    #endif

そして2つ目……。

#ifndef VLIST_H
#define VLIST_H

#include <string>
#include <iostream>

using namespace std;

class Vlist
{
public:
    Vlist();
    ~Vlist();
    void insert(string title, string URL, string comment, float length, int rating);
    bool remove();

private:
    class Node
    {
    public:
        Node(class Video *Video, Node *next)
        {m_video = Video; m_next = next;}
        Video *m_video;
        Node *m_next;
    };
    Node* m_head;
};


#endif

私は挿入と呼ばれるメンバー関数にアクセスしようとしていますが、その方法がよくわかりません....これは私がこれまでに思いついたものです。

  Array[i] = new Video(title, URL, comment, length, rating);
            Vlist *list = new Vlist;
            list->insert(title, URL, comment, length, rating);

その上下にさらにコードがありますが、これは私が問題を抱えている領域です。行 (Vlist *list = new Vlist;) : undefined reference to 'Vlist::Vlist()' でそれを読み取ります

4

1 に答える 1

-1

main 内に #include"video.h" と #include "vlist.h" を追加しましたか? Vlist のオブジェクトを作成し、オブジェクト メンバーに適切にアクセスしたようです。メインはどのように定義されていますか? クラスのオブジェクトでパブリック メンバーにアクセスできない理由は何だと思いますか?

1 つの提案は、ヘッダー ファイルでの宣言の使用を避け、std:: のプレフィックスを使用することです。

于 2013-03-12T18:27:02.937 に答える