Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 11
1

Перегрузка оператора "++" и "--" , компилирует, но при запуске программы - ошибка

16.10.2014, 18:58. Просмотров 586. Ответов 2
Метки нет (Все метки)

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
68
69
70
71
72
73
74
75
76
#include <iostream> 
#include<ctime>
#include<stdio.h>
#include<locale.h>
#include <windows.h>
#include <conio.h>
#include<iomanip>
#include <cstring>
using namespace std;
class d
{
private:  
    int size ;
    char    *n;
public:
  d()
  {
      size=3;
      n = new char [3];
      n="ab";
  }
    d(int s,char u[])
  {
     size=s;
     n=new char[size+1];
     strcpy(n,u);
  }
    
    d&  operator --() 
    {
        size-=1;
        char *s = new char[size];
        strcpy(s,n);
        while(*(s++)=*(n++));s[size]=0;
        delete [] n;
        n=new char[size+1];
        while(*(n++)=*(s++));
        return *this;
    }
    d& operator ++()
    {
        int newsize=size+1;
        char *s = new char[newsize];
        strcpy(s,n);
        s[size-1]=add();
        s[size]=0;
        delete[] n;
        n=s;
        size=newsize;
        return *this;
    }
 
    char add ()
    {
        cout<<"Enter new symwol: "<<endl;
        char ns;
        cin>>ns;
        return ns;
    }
    void ct()
    {
        cout<<n<<endl;
    }
};
 
 
void main()
{
    
    d a;
    a--;
    a.ct();
    a++;
    a.ct();
   while(1);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2014, 18:58
Ответы с готовыми решениями:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

Перегрузка оператора "++" и "--" в чем может быть причина нарушение прав доступа?
Вот такой вот код #include &lt;iostream&gt; class d { private: int size ; char *n; public: ...

Ошибка при запуске .exe файла из debug: "Приведение строки "Июнь" к типу "Double" является недопустимым"
Если запускать из самого проекта(F5), то все нормально, а если скомпилированный запустить, то...

Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "."
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
2
98 / 98 / 47
Регистрация: 19.11.2012
Сообщений: 195
16.10.2014, 19:09 2
Выход за границы массива, например выделяете память под 2 элемента, и в индекс 2(читай третий элемент) пытаетесь записать 0
C++
1
2
char *s = new char[size];
s[size]=0;
Попытка удалить константную строку:
C++
1
2
n="ab";
delete [] n;
За комментируйте код внутри d& operator --() { }, кроме return *this; программа запустится. Другое не смотрел.
0
5479 / 4874 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2014, 19:59 3
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream> 
#include<ctime>
#include<stdio.h>
#include<locale.h>
#include <windows.h>
#include <conio.h>
#include<iomanip>
#include <cstring>
using namespace std;
 
class d
{
private:  
    int size; // количество символов в строке (вместе с '\0');
    char    *n;
public:
  d()
  {
      size = 3;
      n = new char[size];
      strcpy(n, "ab");
  }
  
  d(char u[])
  {
     size = strlen(u) + 1;
     n = new char[size];
     strcpy(n, u);
  }
    
    d&  operator --() 
    {
        --size;
        char *s = new char[size];
        
        int i = 0;
        while(i < size - 1)
        {
            s[i] = n[i];
            ++i;
        }
        s[size - 1] = 0;
        delete [] n;
        n = s;
        return *this;
    }
    
    d& operator ++()
    {
        ++size;
        char *s = new char[size];
        strcpy(s, n);
        s[size - 2] = add();
        s[size - 1] = 0;
        delete [] n;
        n = s;
        
        return *this;
    }
 
    char add ()
    {
        cout << "Enter new symwol: "<<endl;
        char ns;
        cin >> ns;
        return ns;
    }
    void ct()
    {
        cout<<n<<endl;
    }
 
    ~d()
    {delete [] n;}
};
 
 
int main()
{
    
    d a;
    --a;
    a.ct();
    ++a;
    a.ct();
    d b("asdf");
    b.ct();
    --b;
    --b;
    b.ct();
    ++b;
    ++b;
    b.ct();
    
    
    cin.get();
    cin.get();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2014, 19:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Получить значение из {"text1":"val1","text2":"val2","text3":{"text":"val"}}
Есть такая строка var my = '{&quot;text1&quot;:&quot;val1&quot;,&quot;text2&quot;:&quot;val2&quot;,&quot;text3&quot;:{&quot;text&quot;:&quot;val&quot;}}'; Как из...

Ошибка при запуске "Visual Studio" пакет "monoandroiddesignpackage"
при запуске выдает ошибку: Не могу понять где его найти? подскажите пожалуйста. p.s....

Класс "Матрица". Перегрузка оператора "минус"
Помогите дописать программу или исправить ее. Нужно было написать программу, где создать класс...

Известны сорта роз, выращиваемых тремя цветоводами: "Анжелика", "Виктория", "Гагарин", "Ave Maria", "Катарина", "Юбилейн
Известны сорта роз, выращиваемых тремя цветоводами: &quot;Анжелика&quot;, &quot;Виктория&quot;, &quot;Гагарин&quot;, &quot;Ave...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.