С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
1

New delete

27.02.2015, 03:40. Показов 471. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
написал код ну там в блоке перегрузки оператора добавил new
C++
1
2
3
4
5
6
void operator=(char* t)
    {
        int tl=strlen(t);
        a=new char[tl+1];
        strcpy(a,t);
    }
a как добавить new здесь?
C++
1
2
3
4
void operator=(int v)
{
    _itoa_s(v,a,10);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2015, 03:40
Ответы с готовыми решениями:

Используя delete по указателю, возвращенному new [] или delete [] указателем, возвращаемым new
Помогите ответить на вопрос, не могу понять суть вопроса (правильно ли понимаю, что будет если...

В чем разница между delete и delete[]?
а можете еще по подробней рассказать про delete, точнее даже delete, чем именно отличается delete...

Чем отличается delete[] от delete?
чем отличается? delete mas от delete mas

Delete или delete []
Здравствуйте. Написал программу которая создает динамический массив, заполняемый нулями и выводит...

4
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.02.2015, 04:22 2
C++
1
2
3
4
5
void operator=(int v)
{
    _itoa_s(v,a,10);
    operator=(a);
}
0
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
27.02.2015, 04:23  [ТС] 3
hoggy, не надо больше написать new?
0
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.02.2015, 05:02 4
Цитата Сообщение от CrossoX Посмотреть сообщение
не надо больше написать new?
итак сойдет (:
0
Модератор
Эксперт С++
13710 / 10910 / 6476
Регистрация: 18.12.2011
Сообщений: 29,133
27.02.2015, 08:26 5
Какая-то странная интерпретация операции равно у Вас получается.
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
class A
{
char *a;
public:
  A():a(NULL){}
  A(char *t)
  {
     a=new char[strlen(t)+1];
     strcpy(a,t);      
  }
  A(int n)
  {
     char tmp[30];
    _itoa_s(v,tmp,10);
     a=new char[strlen(tmp)+1];
     strcpy(a,tmp);      
  }
  A(A& t)
  {
     a=new char[strlen(t.a)+1];
     strcpy(a,t.a);      
  }
  ~A(){ if(a)delete[] a; }
  A& operator=(char *t)
  {
      if(a)delete[] a; 
     a=new char[strlen(t)+1];
     strcpy(a,t); 
     return *this;     
  }
  A& operator=(int n)
  {
      if(a)delete[] a; 
     char tmp[30];
    _itoa_s(v,tmp,10);
     a=new char[strlen(tmp)+1];
     strcpy(a,tmp);
     return *this;      
  }
  A& operator=(A& t)
  {
     if(this==&t)
         return *this; 
     if(a)delete[] a;
     a=new char[strlen(t.a)+1];
     strcpy(a,t.a);      
  }
};
0
27.02.2015, 08:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2015, 08:26
Помогаю со студенческими работами здесь

delete[] *pointer vs. delete pointer и утечка памяти
Здравствуйте! Есть класс "умного" указателя counted_ptr, который удаляет хранящийся в нём T*...

"delete [] a, b;" эквивалентно "delete [] a; delete [] b;"?
Я правильно понимаю, что "delete a, b;" эквивалентно "delete a; delete b;" ?

delete[]
подскажите пожалуйста как заставить это работать? Вылетает на строчке delete. Выделяю ведь память...

new - delete
Добрый день. Выделяю память для записи 10 значений координат точки. #include <iostream> using...


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

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