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

Оператор delete в деструкторе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функции. Рассчитать значение Y http://www.cyberforum.ru/cpp-beginners/thread1070639.html
C++ Вычисления по известным формулам Составить программу вычисления значения функции y=\frac{{a}^{2}+10}{\sqrt{{a}^{2}+1}} при любом значении а http://www.cyberforum.ru/cpp-beginners/thread1070637.html
C++ Выяснить, сколько раз в тексте встречается введенное с клавиатуры слово.
Имеется текстовый файл, содержащий некоторое количество строк длиной до 80 символов. Выяснить, сколько раз в тексте встречается введенное с клавиатуры слово.
C++ Написать программу, формирующую из одной строки, содержащей фамилию, имя и отчество строку с фамилией и инициалами
Написать программу, формирующую из одной строки, содержащей фамилию, имя и отчество строку с фамилией и инициалами
C++ Каждый элемент матрицы A(3,3) разделить на произведение ее не-четных положительных элементов http://www.cyberforum.ru/cpp-beginners/thread1070627.html
Каждый элемент матрицы A(3,3) разделить на произведение ее не-четных положительных элементов
C++ Подскажите, где ошибка? Задача такая: В одномерном массиве, вводимом с клавиатуры, вычислить 1) кол-во отрицательных элементов массива 2)сумму модулей элементов массива, расположенных после минимального по модулю элемента Выдает ошибку в строке со скобкой, которая находится после строки if(fabs(massiv<j) #include<iostream.h> #include<conio.h> #include<stdlib.h> подробнее

Показать сообщение отдельно
Tolstopyz
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 2

Оператор delete в деструкторе - C++

13.01.2014, 22:45. Просмотров 481. Ответов 3
Метки (Все метки)

Здравствуйте, нужна помощь, есть класс и функция к которую передается этот класс:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
 
class a
{
public:
    a(){f = new char (100);}
    ~a(){delete f;}
    char *f;
};
 
void how (a g)
{cout<<g.f;}
 
int main ()
{
a b;
how(b);
return 0;
}
Этот код скомпилируется и почти выполниться, но будет ошибка так как деструктор вызовется два раза, сначала для копии класса потом для самого класса и получится, что он захочет второй раз освободить память. Что нужно изменить в именно в Классе что бы такой код выполнился?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru