Форум программистов, компьютерный форум CyberForum.ru

Глупый вопрос по указателям? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод чисел из арабских в римские. Пределы int http://www.cyberforum.ru/cpp-beginners/thread241119.html
Есть программа: #include <stdio.h>; #include <conio.h>; int roman(int,int,char); main() { int a,z; clrscr(); while (z!=1){ printf("Введите число (1-32767): \nАрабское число: ");
C++ Переместить нулевые элементы в конец массива Добрый день! Я уже к вам за помощью обращалась и вот пишу в очередной раз. Пишу код программы, но программма отказывается его выполнять так как имеются ошибки в коде. Задача состоит в следующем: имеется одномерный массив. Все элементы, равные нулю, нужно переместить в конец массива. У меня получается вот такая программа, но она не работает: #include<stdio.h> #include<stdlib.h>... http://www.cyberforum.ru/cpp-beginners/thread241081.html
число в степени C++
Выведите число 2 в степени N. Нужно решить циклом for. Знаю, это лёгкая задача, но я совсем забыла цикл for.
из заданного интервала натуральных чисел определить все простые числа C++
из заданного интервала натуральных чисел определить все простые числа
C++ Как правильно оформлять модули? http://www.cyberforum.ru/cpp-beginners/thread241016.html
как правильно нужно оформлять модули? допустим самый простейший.сохранил как modul.h #include <iostream> extern void write(); void write() { cout<<"Hello world!"<<endl;
C++ sort_array Всем форумчанам доброго времени суток!!Есть такая задача:реализовать меню,дающее пользователю выбрать сортировку массива по желанию(выбор,вставка или обмен) и направление(возрастание или убывание).,т.е.в программе нужно отобразить все три сортировки.Как это лучше сделать,через оператор switch?Зараннее благодарен за помощь. подробнее

Показать сообщение отдельно
Напильнег
480 / 120 / 10
Регистрация: 30.09.2010
Сообщений: 473
12.02.2011, 23:09     Глупый вопрос по указателям?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A
...
};
 
class B: public A
...
};
 
int main(int argc, char *argv[])
{
    B* z = new B;
    A* x = z;
 
    delete x;
}
Цитата Сообщение от Alex1234 Посмотреть сообщение
память выделенная под z освободится при delete x?
Память по переменную z типа (B *), выделяется в стеке и автоматически освобождается по достижению конца операторного блока, и delete x ее никак не касается.

Что же до памяти, указателем на которую проинициализирована z, то она по delete x освобождается корректно (т.е. освобождается sizeof(B) байт) с вызовом деструктора B::~B, т.к. для экземпляров потомков класса, имеющего виртуальные методы, размер экземпляра и указатель на деструктор (и вообще на виртуальные методы) берутся из актуальной таблицы ВМТ, по указателю, хранящемся в экземпляре, а не по типу указателя на класс предка, по которому происходит обращение - собственно, для этого механизм виртуальных методов и создавался.
 
Текущее время: 07:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru