# Đề tài: tạo toán tử ==trong lớp string với tham số là string, char

1. Thành viên mới
Ngày gia nhập
01 2011
Bài viết
14

## tạo toán tử ==trong lớp string với tham số là string, char

#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <assert.h>
class CMyString{
public:
CMyString(char *a="");
CMyString(const CMyString &);
~CMyString();
// cas phep =, (), [],-> la cac ham thanh vien cua lop
CMyString & operator=( const CMyString &);
char & operator[]( int );
//string & operator()(int , int );
friend bool operator ! ( const CMyString &);
friend bool operator == ( const CMyString &, const CMyString &);
friend bool operator != ( const CMyString &, const CMyString &);
friend bool operator >= ( const CMyString &, const CMyString &);
friend bool operator <= ( const CMyString &, const CMyString &);
friend bool operator > ( const CMyString &, const CMyString &);
friend bool operator < ( const CMyString &, const CMyString &);
friend CMyString & operator += ( CMyString &, const CMyString &);
friend CMyString operator + ( const CMyString &, const CMyString &);
friend ostream &operator << ( ostream &, const CMyString &);
friend istream &operator >> ( istream &, CMyString &);
int get_length();
private:
char *p;
int length;
};
CMyString::CMyString(char *a)
{
length=strlen(a);
p=new char[length+1];
assert(p!=0);
strcpy(p, a);
}
CMyString::CMyString(const CMyString &a)
{
length=a.length;
p=new char[length+1];
assert(p!=0);
strcpy(p,a.p);
}
CMyString::~CMyString()
{
delete [] p;
}
CMyString & CMyString::operator=( const CMyString &R)
{
if( &R!=this) // tranh truong hop no gan cho chinh no
{
delete [] p;
length=R.length;
p=new char[length+1];
strcpy(p,R.p);
}else cout<<"Khong the gan no cho chinh no"<<endl;
return *this;
}
char & CMyString::operator[]( int n)
{
assert( n<length && n>=0);
return p[n];
}
bool operator !( const CMyString &a)
// toan tu kiem tra ngan xep rong
{
return a.length==0;
}
bool operator == ( const CMyString &a, const CMyString &b)
{
return strcmp(a.p, b.p)==0;
}
bool operator != ( const CMyString &a, const CMyString &b)
{
return !(a==b);
}
bool operator >= ( const CMyString &a, const CMyString &b)
{
return (strcmp(a.p,b.p)>=0);
}
bool operator <= ( const CMyString &a, const CMyString &b)
{
return (strcmp(a.p,b.p)<=0);
}
bool operator > ( const CMyString &a, const CMyString &b)
{
return ( strcmp(a.p,b.p)>0);
}
bool operator < ( const CMyString &a, const CMyString &b)
{
return (strcmp(a.p,b.p)<0);
}
CMyString & operator +=( CMyString &a, const CMyString &b)
{
char *str_temp= a.p;
a.length += b.length;
a.p= new char[a.length+1];
assert (a.p!=0);
strcpy(a.p, str_temp);
strcat(a.p,b.p);
delete [] str_temp;
return a;
}

CMyString operator + ( const CMyString &a, const CMyString &b)
// toan tu noi hai xau
{
CMyString str;
str.length=a.length + b.length;
delete [] str.p;
str.p= new char[str.length+1];
strcpy( str.p,a.p);
strcat( str.p,b.p);
return str;
}
ostream & operator << ( ostream &out, const CMyString &a)
{
out<<a.p;
return out;
}
istream & operator >> ( istream &in, CMyString &a)
{
char str[100];
cout << "\n Nhap xau: ";
in.get(str,100);
// cho phep nhap xau vao co kem theo ki tu rong
a = str;
return in;
}
int CMyString::get_length()
{
return length;
}
ai có thể code mẫu cho em không??. thank nhiều!

2. ý bạn là gi? code mẫu cho bạn phần nao?

3. Thành viên mới
Ngày gia nhập
01 2011
Bài viết
14

## tạo toán tử == trong lớp string với 2 tham số là string, char

em muốn code mẫu phần tạo toán tử == với tham số là tring, char
CMyString operator == ( const CMyString &, const char)

#### Quyền hạn của bạn

• Bạn không thể gửi đề tài mới
• Bạn không thể gửi bài trả lời
• Bạn không thể gửi các đính kèm
• Bạn không thể chỉnh sửa bài viết của bạn