Mọi người giúp em sửa lỗi cho chương trình này với ạ :
Mô tả bài toán :
Em đang tập làm về tính kế thừa , lớp đầu tiên là lớp Gia súc với 3 thuộc tính là tiếng kêu , số con đã sinh ( là ngẫu nhiên) và số lít sữa đã cho ( là ngẫu nhiên ) , lớp dẫn xuất là lớp Bò , lớp cuối cùng là lớp Đàn bò để thể hiện số lượng con bò , có 2 thuộc tính là số lượng con bò và 1 danh sách liên kết đơn .
Chuong trinh chay binh thuong nhung no lai bi ngat giua chung . Em có dò lại để xem có biến nào bị trả lại cho hệ điều hành không nhưng hình như là không có . Giúp em tìm lỗi với ạ .
#include <iostream>
#include <cstdlib>
#include <string>
#include <ctime>
using namespace std;
class Giasuc
{
protected:
string tiengkeu;
int socon;
float sosua;
public:
Giasuc()
{
tiengkeu = "...";
}
void Xuat()
{
cout << "Tieng keu : " << tiengkeu << endl;
cout << "So con : " << socon << endl;
cout << "So sua : " << sosua << endl;
}
void Sinhcon()
{
socon = rand() % 9;
}
void Sinhsua()
{
sosua = rand() % 22;
}
};
class Bo : public Giasuc
{
public:
Bo()
{
tiengkeu = "Muu";
}
};
struct NodeBo
{
Bo data;
NodeBo* next;
};
struct ListBo
{
NodeBo* Head;
NodeBo* Tail;
};
class Danbo
{
private:
int n;
ListBo lb;
public:
Danbo()
{
n = 0;
lb.Head = NULL;
lb.Tail = NULL;
}
void Nhap()
{
cout << "Nhap n : " ;
cin >> n;
srand(time(NULL));
for(int i=0;i<n;i++)
{
NodeBo* p = new NodeBo;
if( p == NULL)
{
cout << "Khong cap phat duoc ";
}
else
{
p->data.Sinhcon();
p->data.Sinhsua();
p->next = NULL;
}
if(lb.Head == NULL)
{
lb.Head = lb.Tail = p;
}
else
{
lb.Tail->next = p;
lb.Tail = p;
}
}
cout << "------------" << endl;
}
void Xuat()
{
cout << "So luong bo : " << n << endl;
int j = 1;
for(NodeBo* i = lb.Head ; i!=NULL; i =i->next)
{
cout<<"Bo mang so "<<j<<" : "<<endl;
i->data.Xuat();
++j;
cout << "--------" << endl;
}
}
};
int main()
{
Danbo x;
x.Nhap();
x.Xuat();
}