Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
_Колючий_
4 / 4 / 3
Регистрация: 05.08.2012
Сообщений: 124
0

Отключение деструктора

04.09.2013, 22:50. Просмотров 836. Ответов 16
Метки (Все метки)

Вопрос такой. Возможно ли каким-то образом предотвратить вызов деструктора при уничтожении объекта? У меня есть вот такой класс самодельных строк. Из-за вызова деструктора ловлю вылет при операции + или *.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
class String
{
 
char *str;
int size;
 
int findWord(char symbol, int size)
{
    for (int i=0; i<size; i++)
    if (symbol==str[i]) return true;
return false;
}
 
public:
 
String (int s=0)
{
size=s;
str=new char[size];}
 
String operator+ (String st)
{String temp(size+st.size);
for (int i=0; i<size; i++)
    temp.str[i]=str[i];
for (int i=0; i<st.size; i++)
    temp.str[size+i]=st.str[i];
return temp;
}
 
String operator*(String st)
{
int j=0;
for (int i=0; i<size; i++)
    if (st.findWord(str[i],st.size)) j++;
String temp(j); j=0;
for (int i=0; i<size; i++)
    if (st.findWord(str[i],st.size)) temp.str[j++]=str[i];
return temp;
}
 
String operator=(String st)
{
delete []str; size=st.size; str=new char[size];
for (int i=0; i< size; i++)
str[i]=st.str[i];
return st;
}
 
void operator=(string st)
{
delete []str;
size=st.length();
str=new char[size];
for (int i=0;i<size; i++)
str[i]=st[i];
}
 
friend ostream& operator<< (ostream& s, String st)
{
for (int i=0; i<st.size; i++)
s<<st.str[i];
return s;
}
 
~String()
{delete []str;}
};


Вернуться к обсуждению:
Отключение деструктора
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 22:50
Готовые ответы и решения:

Вызов деструктора
При ручном вызове деструктора, освобождается ли память*

Вызов деструктора
Есть написанный мною код: #include &lt;iostream&gt; class Foo { private: int...

Описание деструктора
Пример: #include&lt;iostream&gt; using namespace std; class A { int A; };

Вызов деструктора
Вызывается ли деструктор объекта при завершении программы? а при аварийном...

Работа деструктора
Доброго дня, уважаемые программисты! Лаба. Есть класс Дата_и_Время, в классе...

16
Другие темы раздела
C++ Если в строке есть символы подходящие к шаблону заменить их на Один символ! http://www.cyberforum.ru/cpp-beginners/thread948510.html
Добрый вечер. Дисциплина мат. Логика. Дали вот такую задачу Задание №1. Написать программу для реализации следующего алгоритма определения является ли данная строка символов пропозициональной...
C++ Передача вместе с сообщением некоторого хеша При передаче информационных сообщений по каналам связи часто возникают ошибки, и получается что полученное сообщение отличается от отправленного. Для борьбы с этим применяют различные коды... http://www.cyberforum.ru/cpp-beginners/thread948503.html
Если каждого консольного процесса существует свой дескриптор буфер экрана, то где именно он находится? C++
То есть фишка в чём: если мы создадим консольный процесс, а потом ИЗМЕНИМ буфер экрана и сделаем его активным, то чёрта с два мы туда что-нибудь запишем общеизвестными функциям, например system...
C++ Кодировка в консоли (на ЕГЭ)
В этом году буду писать экзамен, но дело в том, что в visual studio setlocale(LC_ALL,"Rus"); не приводит ни к чему (знаю, что в самой консоли надо настраивать другой шрифт, который поддерживает...
C++ Убрать из слова каждую вторую гласную букву в диапазоне от 8 до 13 буквы http://www.cyberforum.ru/cpp-beginners/thread948483.html
тема: текстовые файлы. убрать из слова каждую вторую гласную букву в диапазоне от 8 до 13 буквы.
C++ Файловый ввод-вывод в задаче Не понимаю как составить вывод данных из файла в задаче (см.ниже), я вообще запутался с вводом выводом, помогите растолковать. Если cout (ostream) выводит текст, почему тогда объект fout (ofstream... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru