0

構造体、ファイル、および関数を含むクラスがあります。関数内に構造体のリンクリストを作成しようとしていますが、その方法がよくわかりません。これが私のコードのその部分に対するこれまでの私の仕事です:

#include <iostream> 

using namespace std;

class myPrintSpool
{
public:
    void send(string);

private:
    int printSpoolSize;
    myPrintSpool *printSpoolHead;
    myPrintSpool* next;
};

struct file
{
    string fileName;
    int filePriority;
    file* next;
};

void myPrintSpool::send(string name)
{
    //Adds to linked list
    file file;

    myPrintSpool* file = new myPrintSpool;

    if(printSpoolHead == NULL)
    {
        printSpoolHead = file;
    }
    else
    {
        file->next = printSpoolHead;
        printSpoolHead = file;
    }

    printSpoolSize++;
}

関数内で文字列を送信して、ユーザーが送信するファイル名を入力すると、構造体の名前がそのfileNameに変更され、構造体ファイルがその入力名に変更されるようにします。ただし、最初は上記の部分を正しく動作させることができないため、どうすればよいかわかりません。

よろしくお願いします。お時間を割いていただきありがとうございます。

4

1 に答える 1

1

私はC++をやったのは久しぶりなので、これはすべて思い出からです。あなたが提供したコードでは、クラスをインスタンス化していません。あなたは1つにメモリを割り当てています。そのメモリに新しいクラスを割り当てたい場合:

myPrintSpool printSpool = new myPrintSpool();
myPrintSpool *file = &printSpool;

あなたが実際に何をしているのか、私は少し混乱しています。printSpoolHead は常に現在の myPrintSpool オブジェクトと等しくなるようで、最初のインスタンス化以外の場合は、それ自体を指します。

エラーの場所について具体的なことは何も言わなかったので、単純な出力を行って、関数が本来あるべき (または行っている) ことを行っていることを確認します。

編集: 実際、C++ のインスタンス化によって失敗したことを思い出したので、次のようになる可能性があります。

myPrintSpool printSpool;
于 2013-01-20T03:04:22.183 に答える