【发布时间】:2014-08-03 04:18:02
【问题描述】:
我是初学者,在尝试将一个指针复制到指针数组中的对象时遇到问题..
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 类从 Publication Privately 继承
ptrpub[i]=ptr; //'Publication' is an inaccessible base of 'Book'
有什么方法可以复制它们,所以我可以使用 ptrpub[i]->putdata() 来显示为书籍对象输入的所有数据.. 我必须保持 Book 和 Publication 类之间的这种关系。
【问题讨论】:
-
使用
std::string和std::vector而不是指针。这些类知道如何复制自己。
标签: c++ arrays class oop pointers