我是新手,在尝试将一个指针复制到指针数组中的对象时遇到问题。
class Publication
{
char title[20];
int idd;
public:
char* getT()
{
return title;
}
virtual void getData()
{
cout<<"Enter Title of Book";
cin>>title;
cout<<"Enter ID of Book";
cin>>idd;
}
virtual void putData()
{
cout<<"Title of Book : "<<title<<"\n";
cout<<"ID of Book : "<<idd;
}
};
class Book:private Publication
{
int pages;
public:
void getData()
{
cout<<"Enter Title of Book";
cin>>getT();
cout<<"Enter Pages ";
cin>>pages;
}
void putData()
{
cout<<"Title of Book : "<<getT()<<"\n";
cout<<"No of Pages : "<<pages;
}
};
主功能
int main()
{
Publication *ptrpub[2];
Book *ptr;
for(int i=0;i<2;i++)
{
cout<<"Enter Data for Book Object";
ptr=new Book;
ptr->getData();
现在在此循环中,我想将该指针移动到指向发布的指针数组中,即ptrpub [],其中Book类从发布私有地继承
ptrpub[i]=ptr; //'Publication' is an inaccessible base of 'Book'
有没有办法复制它们,所以我可以使用ptrpub [i]-> putdata()来显示为书本对象输入的所有数据。而且我必须保持Book和Publication类之间的关系。
问题是,你继承Book
从Publication
私下:
class Book:private Publication
这意味着,只有Book
的实现是知道它继承自Publication
-代码外部类不知道这一点,所以你不能投Book
以Publication
从内部成员除外Book
(或朋友的成员)。
您可以通过公开继承来解决此问题:
class Book:public Publication
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句