![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 12.05.2009
Сообщений: 1
|
![]()
/*создайте класс String, в котором в качестве свойств определены указатель на динамический массив символов для хранения строки и целая переменая, содержащая длину этой строки. В классе должны быть созданы конструктор без параметров, конструктор с параметром char*, конструктор -генератор копий, деструктор и метод operator=(). Включите в состав класса перегруженные методы operator+() operator-(). Первый метод должен добавлять к объекту класса String другой объект такого же типа или строковую константу типа char* . а второй -удалять из строки в объект String любой заданный симбол. Создайте перегруженые операторы <<и>> для ввода и вывода на экран */
kursovoj.exe - 12 error(s), 0 warning(s) #include <cstring> #include <iostream> #include <conio.h> #include <cstdlib> using namespace std; class String { char* ptr; size_t n; public: String(); String(String & str); String (const char* str); /*!!!!!!!!!!*/ ~String(); String & operator=(String & str); String operator+(String & str); String operator+(char *); String operator-(char); friend ostream& operator<<(ostream& os, String & str); friend istream& operator>>(istream& is, String & str); }; String::String() { ptr=new char[256]; n=0; for(int i=0;i<256;i++) { ptr[i]=0;} } String::String (String & str) { ptr=new char [256]; n=str.n; strcpy_s (ptr,256, str.ptr); } String::String(const char * str) { ptr=new char[256]; n=strlen(str); strcpy_s(ptr, 256,str); } String::~String() { delete [] ptr; } String & String: ![]() { n=str.n; strcpy_s(ptr, 256, str.ptr); return *this; } String String: ![]() { String tmp=*this; if((tmp.n+str.n)<256) { strcat_s (tmp.ptr,256,str.ptr); tmp.n=strlen(tmp.ptr); } else {cout<<"NOt enough memory"<<endl; } return tmp; } String String: ![]() { String tmp=*this; if((tmp.n+strlen(str))<256) { strcat_s(tmp.ptr, 256,str); tmp.n=strlen(tmp.ptr); } else {cout <<"Not enough memory"<<endl; } return tmp; } String String: ![]() { String tmp; unsigned int i,j=0; for(i=0;i<this->n;i++) { if(this->ptr[i] !=ch) { tmp.ptr[j]=this->ptr[i]; j++; } } tmp.n=strlen(tmp.ptr); return tmp; } ostream& operator<<(ostream& os, String & str) { return os<<"String : "<<str.ptr<<endl <<"Length: "<<str.n<<" symbols "<<endl<<endl; } istream& operator >>(istream& is, String & str) { cout<<"Enter string : "; cout.flush(); is>>str.ptr; str.n=strlen(str.ptr); return is; } int main(int argc,char* argv[]) { String st1,st2("abcd"),st3,st4; cin>>st1; cout<<st1; st3=st2+"QWERTY"; cout<<st3; st3=st1+st2; cout<<st3; st4=st3-'a'; cout<<st4; _getch(); return 0; } компилятор VC++ 2005 выдают следующие ошибки c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(38 ) : error C2065: 'strcpy_s' : undeclared identifier c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(62 ) : error C2065: 'strcat_s' : undeclared identifier c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(10 2) : error C2248: 'ptr' : cannot access private member declared in class 'String' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(11 ) : see declaration of 'ptr' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(10 3) : error C2248: 'n' : cannot access private member declared in class 'String' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(12 ) : see declaration of 'n' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(10 9) : error C2248: 'ptr' : cannot access private member declared in class 'String' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(11 ) : see declaration of 'ptr' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(11 0) : error C2248: 'n' : cannot access private member declared in class 'String' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(12 ) : see declaration of 'n' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(11 0) : error C2248: 'ptr' : cannot access private member declared in class 'String' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(11 ) : see declaration of 'ptr' c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(11 7) : error C2593: 'operator >>' is ambiguous c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(11 8) : error C2593: 'operator <<' is ambiguous c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(12 0) : error C2593: 'operator <<' is ambiguous c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(12 2) : error C2593: 'operator <<' is ambiguous c:\program files\microsoft visual studio\myprojects\kursovoj\1.cpp(12 4) : error C2593: 'operator <<' is ambiguous Error executing cl.exe. |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите найти ошибки | Qwoort | Общие вопросы C/C++ | 1 | 26.04.2009 12:50 |
горит курсач | asmodey | Помощь студентам | 0 | 20.04.2009 11:18 |
С++.Задача на строки.Помогите найти ошибки | NamelessEndless | Помощь студентам | 7 | 26.05.2008 23:42 |
помогите найти причину ошибки! | НиКС | БД в Delphi | 3 | 10.05.2007 15:55 |