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

Создать класс строка и производный класс битовая строка, не работает переопределение операций - C++

Восстановить пароль Регистрация
 
gorgutz1234
3 / 3 / 1
Регистрация: 02.03.2010
Сообщений: 75
25.05.2011, 07:06     Создать класс строка и производный класс битовая строка, не работает переопределение операций #1
Здравствуйте уважаемые форумчане.Мне очень нужна помощь в разработке класса.Сам класс вроде работает но вот 1 задание к нему неработает очень нужна помощь.Вот задание
Создать класс строка и производный класс битовая строка
Переопределить следующие операции (длина строки результата должна быть равна длине большей из строк в случае необходимости более короткая битовая строка сдвигается влево знаковым разрядом)

присваивание (=)
сложение (арифметическая сумма строк)
(==) проверка на равенство

встроенные функции такие как (strcpy,strcmp) неиспользовать
Вот код класса:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#pragma argsused
#include <iostream.h>
#include <conio.h>
#include <string.h>
class _string
  { protected:
  char *str;
  int len;
  public:
  _string()
  {
   str=new char;    //constructor without parametrs
   str[0]='\0';
   len=0;
  }
 
  _string(char *st)
  {int i=0;
   while (st[i]!='\0')   //constructor with C string
   i++;
   len=i;
   str=new char[i];
   strcpy(str,st);
   }
 
  _string(char st)         //construcnor for symbol
  {   str=new char;
      str[0]=st;
      str[1]='\0';
      len=1;
   }
 
  _string(_string &str1)  //copy constructor
 {   str=new char;
     len=str1.len;
     strcpy(str,str1.str);
 }
 void show ()
 {
  cout<<str<<"   "<<len<<endl;
 }
 int dlina(char *st)
 {
 int i;
 while (st[i]!='\0')
 i++;
 len=i;
 return len;
  }
 char *clear(char *st)   //function clear
    {
    st[0]='\0';
     strcpy(str,st);
     return str;
     }
 };
 //~_string() { delete str; len=0;}  //destructor
 
 
 
  class bit_string: public _string    //child
  {
  public:
  bit_string()
  {                //constructor  without parametrs
  _string();
  }
 
  bit_string(char *st):_string(st)
  {
 
     int i=0;
     while (str[i]!='\0')
        {if ((str[i]!='0') && (st[i]!='1')) {
                                             str[0]='\0';
                                             len=0;
                                             break;
                                            }
                                            i++;
         }
   }
 
   bit_string(char st):_string(st)         //construcnor for symbol
   {
   //_string(st)
   if  ((str[0]!='0') && (str[0]!='1')) {str[0]='\0';
                                len=0; }
   }
   bit_string(bit_string &str1):_string(str1)  //copy constructor
 {   str=new char;
     len=str1.len;
     strcpy(str,str1.str);
 }
  
  // ~string() { delete str; }; 
 
    char *negative_number ()
     { int *mas;
        mas=new int [10];                              //convert to negative number
        int i,l,dl,smart;
      if (str[0]=='-') {i=1;
                      while (str[i]!='\0') {
                                         if (str[i]=='0') str[i]='1';
                                         if (str[i]=='1') str[i]='0';
                                         i++;
                                         l+=i;
                                         }
                        i=0;
                        l++;
                        while (str[l]!='\0') {
                                              if (str[l]='1') {str[l+1]=0; smart=1;}
 
                       }
     return str;
     };
 
 bit_string operator == (bit_string *str1,*str2;)
     {int l1,l2,i
      if (l1==l2) {while l1>0 {if (str1[i]!=str2[i]) return false; i++;}
      else return false;
     }
     };
 bit_string operator + (bit_string *str1,*str2;  )
 { int mas1,mas2,a1,a2,b1,b2,s,sn=0,l1,l2,i,j;
   int *mas;
   mas=new int [10];
   mas1=int atoi (str.str1);
   mas2=int atoi (str.str2);
   int l1=strlen(str.str1);
   int l2=strlen(str.str2);
   l=l1+l2;
   sn=0;
   for (i=l;l-1<i;i++)
   {
   a1=mas1 % 10;       // mod
   a2=mas2 % 10;
   b1=mas1 / 10;       // div
   b2=mas2 / 10;
   mas1=b1;
   mas2=b2
   s=a1+a2+sn;
   if s=0 {mas[i]=0 sn=0}
   if s=1 {mas[i]=1 sn=0}
   if s=2 {mas[i]=0 sn=1}
   if s=3 {mas[i]=1 sn=1}
   }
   while (l>i) {char *itoa(int *mas[i],char *str[i],int 10);
                                   i++;}
   return str;
 };
 } 
int main(int argc, char* argv[])
{
 bit_string s1;
 s1.show();
 bit_string s2("-0101");
 s2.show();
 bit_string s3(s2);
 s3.show();
 bit_string s4('k');
 s4.show();
 getch();
 
        return 0;
}
Добавлено через 10 часов 57 минут
ау ребят вы где ??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2011, 07:06     Создать класс строка и производный класс битовая строка, не работает переопределение операций
Посмотрите здесь:

C++ Создать класс Str (символьная строка). Переопределить оператор присвоения.
Класс строка, класс текст, агрегация C++
создать производный класс C++
C++ Класс динамическая строка и перегрузка операций
C++ Создать иерархию классов, представляющих простое наследование. Базовый класс – строка символов (char *)
C++ Реализовать класс Строка (String) для хранения и выполнения операций над строкой
Создать класс "Шар", заданный радиусом, и определить производный класс "Окружность" C++
Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
25.05.2011, 10:52     Создать класс строка и производный класс битовая строка, не работает переопределение операций #2
А не работает-то что?
gorgutz1234
3 / 3 / 1
Регистрация: 02.03.2010
Сообщений: 75
25.05.2011, 15:23  [ТС]     Создать класс строка и производный класс битовая строка, не работает переопределение операций #3
а нуда неработает переопределение операций
Yandex
Объявления
25.05.2011, 15:23     Создать класс строка и производный класс битовая строка, не работает переопределение операций
Ответ Создать тему
Опции темы

Текущее время: 12:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru