![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 25
|
![]()
вопрос вот в чем: когда он выводит на экран, при выполнении оператора ++, он начинает выдавать нечто странное, вот код!
#include<iostream> #include<conio.h> #include<string.h> #include<stdio.h> using namespace std; class mystr { public: int len; char*str; char*r; char*nstr; mystr(); mystr(char*p="NULL"); mystr(const mystr&M="NULL"); ~mystr(); const mystr&operator =(const mystr &M){ if(&M==this)return *this; if(str) delete[]str; if(M.str){ str=new char[strlen(M.str)+1]; strcpy(str,M.str);} else str=0; return *this;} char* operator +(char*set); mystr operator ++(); char& operator[](int i); void show(void); }; mystr::mystr(char *p){ len=strlen(p); str=new char[len+1]; strcpy(str,p); } mystr::mystr(const mystr &M){ len=M.len; str=new char[len+1]; strcpy(str,M.str); } mystr::~mystr(){ delete[]str; } //индексирование char& mystr:: operator[](int i) {if (i<strlen(str)) return str[i]; } //объединение char* mystr:: operator+(char*set){ char *r=new char[strlen(str)+strlen(set)+1]; strcpy(r,str); strcat(r,set); return r; } //префиксное увеличение строки ++ mystr mystr:: operator ++(){ char *r; if(nstr){ r=new char[strlen(nstr)+1]; strcpy(r,nstr); delete[] nstr; } else { r=new char[strlen(str)+1]; strcpy(r,str); } r=new char[strlen(r)+strlen(str)+1]; if(nstr) { sprintf(nstr,"%s%s",r,str); } return nstr; } void mystr::show(void){ cout<<str<<endl; } int main(){ setlocale(LC_ALL,".1251"); mystr M="opel"; M.show(); char *B=new char[8]; strcpy(B,"_rullez"); cout<<"объединение строк:\n"; puts(M+B); M++; cout<<"префиксное увеличение строки:\n"; M.show(); getch(); return 0; } Последний раз редактировалось nhr; 04.05.2011 в 21:07. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Увеличение звука | Adblock | Софт | 2 | 28.10.2010 13:06 |
Увеличение изображения | Xdron | Мультимедиа в Delphi | 16 | 23.03.2010 00:30 |
увеличение стека на C++ | Alex_FF | Помощь студентам | 1 | 16.12.2009 23:57 |
Увеличение изображения. | Fellics{новичок} | Помощь студентам | 8 | 08.03.2009 12:30 |
Пропорциональное увеличение | Роман Радер | Мультимедиа в Delphi | 1 | 02.04.2007 12:22 |