Em vừa đọc được một vài tài liệu về lập trình hướng đối tượng, khi em bắt tay vào làm bài tập thì bị lỗi
sv.h: In function ‘int main()’:
sv.h:13:7: error: ‘void nguoi::datTen(std::__cxx11::string)’ is inaccessible
void datTen(string name) {
^
Đây là file .h của em:
#include <iostream>
#include <string>
using namespace std;
class nguoi {
public:
string layTen() {
return ten;
}
int layTuoi() {
return tuoi;
}
void datTen(string name) {
ten = name;
}
void datTuoi(int age) {
tuoi = age;
}
private:
int tuoi;
string ten;
};
class sinhVien: private nguoi{
public:
float layDiemTB() {
return diemTB;
}
void datDiemTB(float mark) {
diemTB = mark;
}
private:
float diemTB;
};
đây là file .cpp:
#include <iostream>
#include <string>
#include "sv.h"
using namespace std;
int main() {
sinhVien sv;
string name;
int age;
float mark;
cout<<"Nhap ten sinh vien : ";
cin>>name;
sv.datTen(name);
cout<<"Nhap tuoi sinh vien : ";
cin>>age;
sv.datTuoi(age);
cout<<"Nhap diem tb cua sinh vien : ";
cin>>mark;
sv.datDiem(mark);
cout<<"Sinh vien "<<sv.layTen()<<" "<<sv.layTuoi()<<" co "<<sv.layDiem()<<" diem.\n";
return 0;
}
vì mới học được có 2 ngày nên đầy óc còn ngu muội nhưng thật sự em không biết mình sai chỗ nào ạ, mong anh chị giúp đỡ .
Tiện thể cho em xin một vài quyển sách/tài liệu LT HDT hay đi ạ, em đang rất hứng thú với cái này nhưng mà trên mạng nhiều tài liệu quá không biết chon cái nào