我不太确定如何使用智能指针。
我必须创建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;
}