-
06-04-2011, 03:47 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
sử khác biệt giữ String::operator += ()va String::operator +() khi sử dung char *p
Trong String.h
class String
{
char *p;
String (int len);
public:
String(const char* s=""); //phuong thuc mac dinh
String (const String &s );//phuong thuc sao chep
~String(); //phuong thuc huy
//phuong thuc gan
String &operator=(const char* s);
String &operator=(const String &s);
//phuong thuc nhap
friend ostream& operator<<(ostream &os,const String &s);
//phuong thuc xuat
friend istream& operator>>(istream &is,String &s);
//phuong thuc noi vao cuoi
String& operator +=(const char* s);
String& operator +=(const String &s);
//phuong thuc tao chuoi moi
String operator +(const char* s)const;
String operator +(const String &s )const;
#include <iostream.h>
#include <string.h>
#include "String.h"
char* StrDup(const char* s)//tao 1 vung nho moi co do dai du de chep s vao
// va tra ve con tro chi toi vung nho do
{
char* p= new char[strlen(s)+1];
if(p)
strcpy(p,s);//copy s vao vung nho p
return p;
}
String::String (int len)//ham contructor
{
p= new char[len+1];// tao vung nho voi bo nho chep ki tu char co do dai len+1
}
String::String(const char* s)//phuong thuc mac dinh
{
p=StrDup(s);
}
String::String(const String &s) //phuong thuc sao chep
{
p=StrDup(s.p);
}
String::~String() //phuong thuc huy
{
delete[] p;
}
String& String:perator =(const char *s)// phuong thuc gian
{
if (strlen(p)== strlen(s))/eu do dai p =s
strcpy(p,s); //coppy s vao p
else
delete[]p; /guoc lai xoa p
p=strdup(s); // con tr p tao vung nho moi bang do dai cua s
return *this; //tra ve gt con tr p chi vao vung nho
}
String& String:perator =(const String &s)
{
if (this!= &s) // neu v tri ctro chi vao khac voi vtr doi tuong s
*this =s.p; // gtr con tro nay = gtr con tro chi toi s
return *this; // tra ve gt con tro
}
ostream& operator<<(ostream &os,const String& s)
{
os<<s.p;
return os;
}
istream& operator>>(istream &is,String &s)
{
const int BUF_LEN=255;//ham hang co toi da 255 ki tu
char buffer[BUF_LEN];/oi dung
is.getline(buffer,BUF_LEN+1);//lay noi dung voi do dai
s=buffer;
return is;
}
String& String:perator +=(const char *s)
{
}
/*String& String:perator +=(const String &s)
{
}*/
String String:perator+(const char* s)const
{
String res(strlen(p)+strlen(s));
strcpy(res.p,p);
strcat(res.p,s);
return res;
}
String String:perator +(const String &s)const
{
return *this + s.p;
}
String& String:perator +=(const char *s)?
{
KO TAO RA VÙNG NHƠ MỚI MÀ CỘNG DỒN LẠI ?
NHƯNG KO BIẾT VIẾT NHƯNG THẾ NÀO
}
String& String:perator +=(const String &s)?
String String:perator+(const char* s)const
{
TẠO RA 1 ĐỐI TƯỢNG CÓ ĐỘ DÀI BẰNG VỚI ĐỘ DÀI CON TRỎ CŨ VÀ ĐỘ DÀI CON TRỎ MỚI
SAU ĐÓ COPY CON TRỎ CŨ VÀO ĐỐI TƯỢNG CÓ CON TRỎ MỚI TẠO VÀ CỘNG CON TRỎ CÂN CỘNG
}
String String:perator +(const String &s)const KO HIỂU
MÌNH THỰC KO PHÂN BIỆT GIỮA String& String:perator +=(const String &s) VÀ
String& String:perator +=(const char *s) CŨNG NHƯ String& String:perator +=(const String &s) VÀ String String:perator+(const char* s)const .
CÁC BẠN ,ANH CHỊ NÀO HIỂU RÕ NÓ THÌ NÓ RÕ DÙM MÌNH .THANKS.View more random threads:
- Tắt ứng dụng thì Vẫn Còn dưới System TRay
- các thao tác trên file
- Thắc mắc về hàm và mảng
- Depends trong VC6.0 có load đc hết các hàm trong file DLL?
- Thực hiện lệnh in một giao diện ???
- Vẽ hiệu ứng quanh viền chữ nhật trong VC++?
- MFC Cách Truyền Tham số vào Thread ???
- chương trình mô phỏng danh sách liên kết đơn
- cách mở thư mục không qua CMD không???
- Sử dụng thư viện psapi viết ctrinh hiển thị các tiến trình đang chạy trên windows?
-
07-04-2011, 06:12 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi quano1
ý . Các anh nào biết chỉ dùm em.
-
08-04-2011, 10:28 AM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi sasadudu
1 cái là base str : char *
1 cái là waper class : string
khác nhau ở bản chất
1 cái chỉ đọc dữ liệu, const method
1 cái là phương thức có khả năng thay đổi dữ liệu lớp
Dưới ánh nắng mặt trời đang lên, những đống pallet nhựa An Giang trải dài mênh mông như những bức tranh tự nhiên đầy sắc màu. Mỗi chiếc pallet nhựa không chỉ là một vật dụng thông thường mà còn là...
Pallet nhựa An Giang giao hàng...