1 / 1 / 0
Регистрация: 06.09.2020
Сообщений: 6
1

Создание объектов классов

20.09.2020, 20:56. Показов 1015. Ответов 2

Author24 — интернет-сервис помощи студентам
Всем доброго.
Есть код:

Код
#include <iostream>

using namespace std;

class A
{
public:
    A()
    {
        cout << "A class Ctor called" << endl;
    }
    virtual ~A()
    {
        cout << "A class Dtor called" << endl;
    }
    int a;
    int b;
};

class B : public A
{
public:
    B()
    {
        cout << "B class Ctor called" << endl;
    }
    ~B()
    {
        cout << "B class Dtor called" << endl;
    }
    int c;
    int d;
};

int main()
{
    A* a = new B();
    A* d = new A();
    delete a;
    delete d;
    

    return 0;
}
Если можно, объясните на пальцах - в чем разница между A* a = new B() и A* d = new A() ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2020, 20:56
Ответы с готовыми решениями:

Создание классов и объектов
Написать программу создания класса. File: Имя файла, Размер, Дата создания, Количество обращений....

Создание классов и объектов
1. Объявить класс по приведенному ниже заданию в соответствии с номером варианта и определить для...

Создание классов и объектов
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; class gai {...

Создание коллекции объектов разных классов
Здравствуйте. Помогите, пожалуйста, с задачкой создания коллекции объектов разных типов. Я сначала...

2
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.09.2020, 21:17 2
Лучший ответ Сообщение было отмечено cd0cs как решение

Решение

В одном случае создается объект тип A, в другом - типа B.
1
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
20.09.2020, 21:18 3
Цитата Сообщение от cd0cs Посмотреть сообщение
Если можно, объясните на пальцах - в чем разница между A* a = new B() и A* d = new A() ?
Добавь виртуальную функцию, увидишь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A
{
public:
    virtual Print()
    {
        std::cout << "A: " << a << ", " << b << std::endl;
    }
............................
};
 
class B : public A
{
public:
    virtual Print() override
    {
        std::cout << "B: " << a << ", " << b << ", " << c << ", " << d <<  std::endl;
    }
............................
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    A* a = new B();
    A* d = new A();
a->Print();
d->Print();
    delete a;
    delete d;
    
 
    return 0;
}
0
20.09.2020, 21:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2020, 21:18
Помогаю со студенческими работами здесь

Создание динамического массива объектов разных классов
У меня есть класс Car и 3 класса Buss, Truck, Passenger которые наследуют класс Car. Как создать...

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение,...

Передача объектов дочерних классов через массив объектов родительского класса в функцию
Здравствуйте. Возможно, вопрос больше относится к теории ООП, но все же я не решился задавать его в...

Преобразования объектов классов в объекты других классов
Задача типа обмен валют. Нужно конвертировать старый фунт стерлинг(фунт, шиллинг и пенсы) в доллары...

Композиция классов и объектов
Написать программу, в которой создаются и уничтожаются объекты, определенного пользователем типа....

Связь объектов классов
Добрый день господа. Нужна помощь гуру:) Возник вопрос реализации связи объектов классов, насколько...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru