复制指针数组中动态创建的指针
copying a pointer created dynamically in array of pointers
我是初学者,当我试图将一个指针复制到指针数组中的对象时,我遇到了问题。
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;
}
};
Main Function
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 private
ptrpub[i]=ptr; //'Publication' is an inaccessible base of 'Book'
是否有任何方法可以复制它们,所以我可以使用ptrpub[i]->putdata()来显示为book对象输入的所有数据。我必须保持Book和Publication类之间的关系
问题是您私下从Publication
继承了Book
:
class Book:private Publication
这意味着只有Book
的实现知道它继承了Publication
——类外部的代码不知道这一点,所以你不能将Book
转换为Publication
,除非从Book
的成员(或朋友成员)中。
您可以通过公开继承
来解决这个问题:class Book:public Publication
相关文章:
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何在没有数据拷贝的情况下从指针创建一个Eigen VectorXd对象
- 如何从绝对地址的 C 样式指针创建对C++对象的引用
- 不明白使用双指针 (**) 创建 2d 动态数组
- 如何使用指向动态数组的静态指针创建类?
- Opencl:从 c 样式指针创建 UserEvent
- 从 uint16 指针创建垫子
- 如何为指针创建类型定义
- 从原始指针创建const_iterator会在 macOS 上产生编译错误
- 为什么可以使用指针创建新结构,但不能以相同的方式创建双精度?
- 是否可以在 c++17 中为 c 样式指针或原始指针创建弱指针
- 调用虚拟函数而不通过类类型指针创建任何对象
- 如何使用双指针创建指针数组?
- 使用指针创建类成员
- 如何使用成员函数指针创建模板类
- 从现有指针C 创建一个新对象
- 使用指针创建动态数组的问题
- 如何为指向数组的指针创建内存集?
- 使用共享指针创建的链表数组
- 使用C++ 11 中的模板类型的成员函数指针创建方法参数