Это одна из тех вещей, где я просто знаю, что делаю это неправильно. Мое задание простое.
Создать 3 класса в c ++,
продукт, программное обеспечение, книга. продукт супер, книга и программное обеспечение являются продуктом.
затем создайте массив указателей и заполните его программным обеспечением и книгами.
так что я сделал следующее
int main()
{
Product *productList[10];
Book *pBook;
Book q(5);
pBook = &q;
pBook->getPrice();
Software *pSoftware;
Software g(5);
pSoftware = &g;
pSoftware ->getPrice();
productList[0] = pSoftware; // fill it with software, cannot do this.
Есть ли способ вставить подкласс в массив суперклассов. Или я должен определить массив указателей как что-то еще.
определения классов ниже
class Product
{
public:
double price;
double getPrice();
Product::Product(double price){};
};
class Book: public Product
{
public:
Book::Book(double price)
:Product(price)
{
}
double getPrice();
};
class Software: public Product
{
public:
Software::Software(double price)
:Product(price) // equivalent of super in java?
{
} // code of constructor goes here.
double getPrice();
};