不能访问积累成员
为什么编译时报错:rror C2248: 'sequence ' : cannot access protected member declared in class 'Book '
error C2248: 'name ' : cannot access protected member declared in class 'Book '
该怎样改?谢谢!
//..................
class Book
{
public:
Book();
~Book();
Book*load(Book*);
protected:
char name[80];
char author[80];
int number;
char sequence[80];
char bookconcern[80];
Book*next;
};
class Reader:public Book
{
public:
~Reader();
void borrow_book();
virtual void login();
private:
char rname[80];
int borrowlimit;
int borrownumber;
Reader*next;
};
class Teacher:public Reader
{
public:
Teacher();
void login();
void borrow_book();
private:
char tsequence[80];
int borrowlimit;
};
void Teacher::borrow_book ()
{
Book*p,*q,*top;
top=load(top); //load(top)读入记录图书信息的链表,top为头指针
char lent_record[80];
cout < < "请输入要借的图书的书号: " < <endl;
cin> > lent_record;
q=p=top;
while(p!=NULL)
{
if(strcmp(p-> sequence,lent_record)==0)
{
cout < < "要借的图书信息如下: " < <endl;
printf( "%-25s%-25s%-25s%-25s%-25s\n ", "书名 ", "作者 ", "书号 ", "出版社 ", "存书量 ");
printf( "%-25s%-25s%-25s%-25s%-25d\n ",p-> name,p-> author,p-> sequence,p-> bookconcern,p-> number);
[解决办法]
把那2个成员改成public即可。虽然这是最懒,最差的解决方法,不过对新手却很合适。