30/09/2018, 17:26

Đọ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

viết 19:34 ngày 30/09/2018

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.

Gió viết 19:42 ngày 30/09/2018

FileList.push_back(new File(…))

viết 19:36 ngày 30/09/2018

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

Gió viết 19:36 ngày 30/09/2018

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

Evil viết 19:32 ngày 30/09/2018

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

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

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

Evil viết 19:30 ngày 30/09/2018

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

Bài liên quan
0