|
|
|
Перегрузка не работает
|
|||
|---|---|---|---|
|
#18+
Суть задачи скопировать одну строку в другую через перегрузку" =", чтобы в новой строке не было ни одной скобки из первой. НЕ пашет, а почему? #include "iostream.h" #include "conio.h" #include "alloc.h" #include "stdlib.h" #include <stdio.h> #include <string.h> class String { char *str; int size; public: String(); ~String(); String& operator=(const String&); void set(); void print(); }; ////////////////////////////////////////////////////////////////////////////////// String::String() { str=NULL; size=0; } ////////////////////////////////////////////////////////////////////////////////// String::~String() { delete str; }; ////////////////////////////////////////////////////////////////////////////////// void String::set() { char *s = "\0"; cout<<"Vvedite stroku"<<endl; gets(s); str = new char [strlen(s)+1]; strcpy(str,s); } ; ////////////////////////////////////////////////////////////////////////////////// void String:: print() { cout<<str<<endl; }; ///////////////////////////////////////////////////////////////////// String& String::operator=(const String& a) { int i,j=0; for (i=0;i=strlen(str);i++) { if (a.str !=')') {str[j]=a.str; j=j+1; } } return *this; } ///////////////////////////////////////////////////////////////////// void main(void) { String *s1; String *s2; s1->set(); s2=s1; s2->print(); getch();} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 22:52 |
|
||
|
Перегрузка не работает
|
|||
|---|---|---|---|
|
#18+
The_answer ... Код: plaintext 1. 2. 3. 4. 5. После чего думаем в слеующем направлении - вот мы захотели скопировать строку, вот у нас для создания копии вызвался конструктор, вот он присвоил str=NULL; The_answer ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Короче... память под копию строки выделять будем или "и так сойдёт!"??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 09:39 |
|
||
|
Перегрузка не работает
|
|||
|---|---|---|---|
|
#18+
AsPiro The_answer ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Короче... память под копию строки выделять будем или "и так сойдёт!"??? И еще в догонку: 2 The_answer: никак не могу понять, что и как будет делать цикл for в таком написании... (Идея правильная, но реализация оставляет желать лучшего...) По-моему, здесь очень легко получить "фэйсом об тайбл": как только встретится скобка ( ')' ), так и произойдет зацикливание - ибо вторым параметром в for идет не сравнение, а присваивание... ИМХО, более правильный вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 10:27 |
|
||
|
Перегрузка не работает
|
|||
|---|---|---|---|
|
#18+
Начнем с того, что gets-e нужен для ввода реальный буфер для данных, а не указатель на константу. Это вообще к защите памяти приведет на некоторых системах. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2006, 22:53 |
|
||
|
Перегрузка не работает
|
|||
|---|---|---|---|
|
#18+
Да, цыкл зачетный, парадавал for (i=0;i=strlen(str);i++) { if (a.str!=')') {str[j]=a.str; j=j+1; } Да и вообще бред все. Полный. На всех уровнях. Рекомендую выбросить все и написать правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2006, 22:58 |
|
||
|
Перегрузка не работает
|
|||
|---|---|---|---|
|
#18+
MasterZivДа, цыкл зачетный, парадавал В плане нечитаемости программы - очень даже неплохие идеи есть :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2006, 00:30 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34008022&tid=2030454]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
172ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 446ms |

| 0 / 0 |
