使用带有链接列表的智能指针

时间:2018-04-21 19:09:55

标签: c++ pointers

我不太确定如何使用智能指针。 我必须创建Smart类来处理这些智能指针,它应该包含operator*()operator->()函数。

我创建了LinkedList类:

class LinkedList
{
private:
    typedef struct node {
        int data;
        node* next;
    }* nodePtr;

    nodePtr emptyPtr;

    nodePtr head;
    nodePtr curr;
    nodePtr temp;
public:
    LinkedList();
    void AddNode(int addData);
    void DeleteNode(int delData);
    void PrintList();
    ~LinkedList();
};

我有一个学生班:

class Student
{
public:
    Student();
    ~Student();
private:
    int age;
    char sex;
};

智能指针需要做的是处理文件。例如:我有5个文件(s0.txt,s1.txt,s2.txt,s3.txt,s4.txt)我希望使用智能指针列出这些文件的内容,但只能存在2个文件在内存中,也就是在我们读取第3个文件之前,应该删除第1个ifstream对象,并且所有这些都应该由Smart类智能指针完成。

任何线索如何处理这种情况?我能够在没有智能指针的情况下完成任务,但我必须使用具有上述条件的智能指针:

int main() {
    string fileName;
    int fileIndex = 0;

    int age;
    char sex;

    while (fileIndex != 5) {
        fileName = "Files/s" + to_string(fileIndex) + ".txt";
        ifstream fileRead(fileName);

        while (fileRead >> age >> sex) {

            cout << age << "\t" << sex<< endl;
        }

        fileIndex = fileIndex + 1;
    }

    system("pause");
    return 0;
}

0 个答案:

没有答案