Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 19:42   #1
4ernobil
Новичок
Джуниор
 
Регистрация: 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:perator =(String & str)
{
n=str.n;
strcpy_s(ptr, 256, str.ptr);
return *this;
}
String String:perator +(String & str)
{
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:perator +(char * str)
{
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:perator-( char ch)
{
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.
4ernobil вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибки 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