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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gorgutz1234
3 / 3 / 1
Регистрация: 02.03.2010
Сообщений: 75
#1

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

25.05.2011, 07:06. Просмотров 658. Ответов 2
Метки нет (Все метки)

Здравствуйте уважаемые форумчане.Мне очень нужна помощь в разработке класса.Сам класс вроде работает но вот 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++):

Создать производный от класса Строка класс - C++
Описать производной от класса Строка класс Строка_Идентификатор. Строки данного класса строиться по правилам записи идентификатор в языке...

Написать класс строка и производный класс, ее шифрующий - C++
Добрый день уважаемые форумчане. Вопрос стоит в решении данной задачи. Мне очень нужна ваша помощь по той причине что мне задали задачу по...

Класс динамическая строка и перегрузка операций - C++
Форумчане, привет :) Нужна помощь!:help: Не могу найти, точнее их ликвидировать ошибки.. :( Общая постановка. Пользовательский класс...

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ... - C++
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями - C++
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Создать класс Point и производный класс ColoredPoint (цветная точка) - C++
Создайте класс Point (точка на плоскости), характеризующийся двумя координатами. Создайте производный класс ColoredPoint (цветная точка), в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryLaptev
Эксперт С++
1040 / 819 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
25.05.2011, 10:52 #2
А не работает-то что?
gorgutz1234
3 / 3 / 1
Регистрация: 02.03.2010
Сообщений: 75
25.05.2011, 15:23  [ТС] #3
а нуда неработает переопределение операций
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 15:23
Привет! Вот еще темы с ответами:

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки - C++
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения...

Создать базовый класс - Array и производный класс - Money для работы денежной суммы - C++
ПОМОГИТЕ, ПОЖАЛУЙСТА, С ЗАДАЧЕЙ Создать базовый класс - Array и производный класс - Money для работы денежной суммы

Создать базовый класс Triad и производный класс vector3D - C++
Помогите пожалуйста с заданием. Часть кода(vector3D) сделал, вроде работает Нужно помочь с классом Triad. Вот полное задание: ...

Реализовать класс Строка (String) для хранения и выполнения операций над строкой - C++
Реализовать класс Строка (String) для хранения и выполнения операций над строкой. Строка должна храниться в виде динамического массива...


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

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

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