复制在指针数组中动态创建的指针

柏井

我是新手,在尝试将一个指针复制到指针数组中的对象时遇到问题。

 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类之间的关系。

cdhowie

问题是,你继承BookPublication私下:

class Book:private Publication

这意味着,只有Book的实现是知道它继承自Publication-代码外部类不知道这一点,所以你不能投BookPublication从内部成员除外Book(或朋友的成员)。

您可以通过公开继承来解决此问题:

class Book:public Publication

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章