
18-06-2007, 17:40
|
|
|
|
חבר מתאריך: 17.11.06
הודעות: 13
|
|
|
בעייה בשרשור מחרוזות בעזרת אופרטור שפת c++
יש לי בעייה בשרשור 2 מחרוזות שונות לתוך מחרוזת אחת, אני חייב להשתמש באופרטור += ,
הכל פועל חוץ מהאופרטור += כשאני מנסה להפעיל אותו מופיע 3 שגיאות
c2114 c2297 c2511
קוד:
#include<iostream>
#include<string.h>
//char final[250];
usingnamespace std;
class string1
{
protected:
char* pstart;
int size;
public:
//string1():pstart("unknown"){}
string1(char* cc):pstart(cc){}
virtualchar* getpstart(){return pstart;}
virtualvoid print()=0;
};
//--------------------------------------------------------
class pointer_size : public string1
{
protected:
unsigned size;
public:
pointer_size():string1("default"),size(7){}
pointer_size(char* vv,unsigned nn):string1(vv),size(nn){}
char* getpstart(){return pstart;}
void print(){
cout<<"this is the item : "<<endl;
for(int i=0;i<size;i++)
cout<<pstart[i];
/* strcat(final,pstart);*/
cout<<endl;
;}
};
//-----------------------------------------------------
class pointer_null : public string1
{
public:
pointer_null(char* vv):string1(vv){}
char* getpstart(){return pstart;}
void print(){
cout<<"this is the item : "<<endl;
int i=0;
while(pstart[i]!='\0')
{
cout<<pstart[i];
i++;
}
/*strcat(final,pstart);*/
cout<<endl;
;}
pointer_null& operator+=(const string&);
};
pointer_null&pointer_null::operator +=(const pointer_null &obj)
{
int Size;
char * Temp;
size =strlen(pstart);
size +=strlen(obj.pstart);
Temp = newchar [size+1];
strcpy(temp,pstart);
strcat(temp,obj.pstart);
pstart = newchar [size+1];
strcpy(pstart,temp);
return *this;
//cout<<"attached string : "<<final<<endl;
}
//-------------------------------------------------------
class pointer_point : public string1
{
protected:
char* pend;
public:
pointer_point(char* begin,char* end):string1(begin),pend(end){}
void print(){
cout<<"this is the item : "<<endl;
int length=0;
int i=0;
char* pnew;
pnew=pstart;
while(pnew!=pend)
{
cout<<pnew[i];
pnew++;
}
cout<<endl;
/* strcat(final,pstart);*/
}
};
//-----------------------------------------------------
constint len=3;
int main()
{
int choice;
char inn[256];
int size;
string1 *arr[len];
do
{
cout<<endl;
cout<<"enter choice for methood"<<endl;
cout<<"1) pointer_size"<<endl;
cout<<"2) pointer_null"<<endl;
cout<<"3) pointer_point"<<endl;
cout<<"4) += attaching chars"<<endl;
cout<<"5) exit"<<endl;
cin>>choice;
switch(choice)
{
case(1):
cout<<"enter char"<<endl;
cin>>inn;
size=strlen(inn);
arr[0]=new pointer_size(inn,size);
arr[0]->print();
break;
case(2):
cout<<"enter char"<<endl;
cin>>inn;
arr[1]=new pointer_null(inn);
arr[1]->print();
break;
case(3):
cout<<"enter char"<<endl;
cin>>inn;
size=strlen(inn);
arr[2]=new pointer_point(inn,inn+size);
arr[2]->print();
break;
case(4):
arr[2]+=arr[1];
break;
case(5):
break;
}
}
while(choice!=5);
for(int i=0;i++;i<3)
if(arr[i])
delete arr[i];
}
נערך לאחרונה ע"י rafidi בתאריך 18-06-2007 בשעה 17:54.
|