Đọc thông tin cấu trúc từ tập tin

Chào mọi người. Mình đang học OOP nên đang có một vấn đề
Tình hình là có 3 đối tượng Ổ cứng, Thư mục, Tập tin với cấu trúc như sau:

class File
{
private:
	string FileName;
	string Extension;
	long Size;
...
class Folder
{
private:
	string FolderName;
	vector<File*> FileList;
...
class Disk
{
private:
	string DiskName;
	vector<Folder*> ListFolder;
...

và yêu cầu đề bài là đọc thông tin ổ cứng từ tập tin.

Vấn đề của mình là khi đọc những tập tin này (bao gồm tên và kích thước) để lưu vào một class thư mục và để thêm vào ổ cứng. nhưng do tính chất tự động hủy thì khi ra khỏi {} là vùng nhớ lại bị hủy do đó vector<*xxx> dữ liệu bị mất .
Vậy thì có cách nào xử lý không ?

Hàm của mình : http://pastebin.com/jve85fhB

xài vector<File>vector<Folder>, cứ xem nó là mảng File []Folder [], tại sao phải xài con trỏ?

FileList.push_back(&file);
sửa thành
FileList.push_back(file);
là xong.

2 Likes

FileList.push_back(new File(…))

1 Like

push_back(new ...) thì phải viết dtor nữa, 1 vòng for để delete FileList[i]; mất công lắm :confounded:

1 Like

Mình đưa ra cách thứ 2 thôi, còn vẫn không muốn dùng con trỏ :smile:

1 Like

Đề nó đặt v luôn. mình cũng đâu muốn dùng đâu

Thật khong thể tin được. Cám ơn các bạn . Mình sửa thành

FileList.push_back(new File(file));

thì ok ròi

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?