01/10/2018, 09:02
Function is inaccessible
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.
";
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
Bài liên quan
màn hình lỗi đầy đủ:
SinhVien phải kế thừa public từ lớp Nguoi:
class SinhVien : public Nguoi{
trong C++ có kế thừa
private
,protected
,public
, đa số toàn kế thừa public, 2 cái kia ít xài.Em chạy được rồi ạ, nhưng mà anh có thể nói thêm khi nào kế thừa public, khi nào private, khi nào protected đi ạ