Code bị lỗi: error: 'const class Hoadon' has no member named 'hhd'

Cho em hỏi là code này bị sai ở đâu ạ?. Ở trên vẫn sử dụng QuanLyHD::hhd bình thường nhưng đến hàm friend lại báo ‘const class Hoadon’ has no member named ‘hhd’.

#ifndef DB_h
#define DB_h
#include "list.h"
#include "hoadon.h"
#include <fstream>
using namespace std;

class QuanLyHD{
private:
    List<Hoadon> hhd;  
public:
    QuanLyHD() {};
    void addHoadon(Hoadon h){
        hhd.add(h);
    }
    void DeleteHoadon(int vitri){
        hhd.Delete(vitri);
    }
    int count() const{
        return hhd.count();
    }
    Hoadon getHoadon(int vitri) const{
        return hhd.get(vitri);
    }       
    void LoadFromFile(const char * fileName){
        ifstream fin(fileName);
        int N;
        fin>>N;
        char t[100];
        fin.getline(t, 100);
        for(int i = 0; i<N; i++){    
            char mahd[15], ngay[2], thang[2], nam[4], ht[100], sdt[100], sotien[100];
            fin.getline(mahd, 50);
            fin.getline(ngay, 5);
            fin.getline(thang, 5);
            fin.getline(nam, 10);
            fin.getline(ht, 50);
            fin.getline(sdt, 50);
            fin.getline(sotien, 50);
            hhd.add(Hoadon(mahd, ngay, thang, nam, ht, sdt, sotien));
        }
        fin.close();  
    }
    void SaveToFile(const char * fileName) const{
        ofstream fout(fileName);
        fout<<hhd.count()<<endl;
        for(int i = 1; i<= hhd.count(); i++){
            Hoadon h = hhd.get(i);
            fout<<h.GetMahd()<<endl;
            fout<<h.GetNgay()<<endl;
            fout<<h.GetThang()<<endl;
            fout<<h.GetNam()<<endl;
            fout<<h.GetHoTen()<<endl;
            fout<<h.GetSDT()<<endl;
            fout<<h.GetSoTien()<<endl;
        }
    fout.close();
    }
    friend ostream & operator<<(ostream &out, const Hoadon &db){
        for(int i = 1; i<= db.hhd.count(); i++)
        out<<db.hhd.Get(i)<<endl;
        return out;
    }
};
#endif

Vì tham số của hàm bạn đang là const Hoadon&:smiley: sửa lại đi.

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