С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Виртуальные функции и деструктор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пакости С++! Шок! Примеры кода! http://www.cyberforum.ru/cpp-beginners/thread940803.html
было дело написал программу, с ошибкой, но рабочую. Конечно порой странно работала, но всё же более менее. А дело было так:long double *Vx= new long double; // Исходя из граничных условий Vx=Vx=1;...
C++ Прата С. Задача считать строку до слова done Буду очень признателен за направление в нужно русло (готового ответа не надо, я хочу понять сам, только направление ) *** Условие: Написать программу которая использует массив char и цикл для... http://www.cyberforum.ru/cpp-beginners/thread940787.html
C++ класс Time
Создайте класс Time(время суток) считая что представлением времени суток является число секунд прошедших от полуночи( классе одной свойство) Напишите конструктор устанавливающий время по часам...
координаты C++
Создайте класс который принимает координаты (долгота, широта). Создайте наследника этого класса который принимает название города. Осушествите сортировку котрая будет выводить координаты с севера на...
C++ При введении больше 20 чисел программа выдает странный результат http://www.cyberforum.ru/cpp-beginners/thread940755.html
#include <iostream> #include <locale> using namespace std; double t1, t2; int main() { setlocale(LC_ALL, "RUS");
C++ Ошибка выноса структуры в отдельный файл Доброго времени суток. Имеется такая проблема: у меня часто используется структура координат в разных файлах, потому я ее решил вынести в отдельный файл и подключать. Вынес ее в заголовочный файл... подробнее

Показать сообщение отдельно
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,389
Записей в блоге: 2
Завершенные тесты: 1
20.08.2013, 18:37
Цитата Сообщение от 19n1ght Посмотреть сообщение
Но ведь в моем примере виртуальность сохранилась.
Ты немного криво сделал, вот так попробуй
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
using namespace std;
 
class A {
public:
    virtual ~A() = 0
    {
        print("Deleted");
    }
    virtual void print(const char *str) const
    {
        cout << "A(): " << str << endl;
    }
};
 
class B : public A {
public:
    
    virtual void print(const char *str) const
    {
        cout << "B(): " << str << endl;
    }
};
 
void main()
{
    A *ptr1 = new B;
    B *ptr2 = new B;
    delete ptr1;
    delete ptr2;
}
ожидается (всмысле если б виртуальность в деструкторах сохранялась), что вывод будет таким
Bash
1
2
B(): Deleted
B(): Deleted
но вывод такой
Bash
1
2
A(): Deleted
A(): Deleted
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.