ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

±àдÀàStringµÄ¹¹Ô캯Êý¡¢Îö¹¹º¯ÊýºÍ¸³Öµº¯Êý
2014-11-24 01:43:23 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:719´Î
Tags£º±àд String ¹¹Ôì º¯Êý

±àдÀàStringµÄ¹¹Ô캯Êý¡¢Îö¹¹º¯ÊýºÍ¸³Öµº¯Êý£¬ÒÑÖªÀàStringµÄÔ­ÐÍΪ£º
class String
{
¡¡public:
¡¡¡¡String(const char *str = NULL); // ÆÕͨ¹¹Ô캯Êý
¡¡¡¡String(const String &other); // ¿½±´¹¹Ô캯Êý
¡¡¡¡~ String(void); // Îö¹¹º¯Êý
¡¡¡¡String & operate =(const String &other); // ¸³Öµº¯Êý
¡¡private:
¡¡¡¡char *m_data; // ÓÃÓÚ±£´æ×Ö·û´®
};


½â´ð£º
//ÆÕͨ¹¹Ô캯Êý
String::String(const char *str)
{
¡¡if(str==NULL)
¡¡{
¡¡¡¡m_data = new char[1]; // µÃ·Öµã£º¶Ô¿Õ×Ö·û´®×Ô¶¯ÉêÇë´æ·Å½áÊø±êÖ¾¡¯\0¡äµÄ¿Õ
¡¡¡¡//¼Ó·Öµã£º¶Ôm_data¼ÓNULL ÅжÏ
¡¡¡¡*m_data = ¡®\0¡ä;
¡¡}
¡¡else
¡¡{
¡¡¡¡int length = strlen(str);
¡¡¡¡m_data = new char[length+1]; // ÈôÄÜ¼Ó NULL ÅжÏÔò¸üºÃ
¡¡¡¡strcpy(m_data, str);
¡¡}
}
// StringµÄÎö¹¹º¯Êý
String::~String(void)
{
¡¡delete [] m_data; // »òdelete m_data;
}
//¿½±´¹¹Ô캯Êý
String::String(const String &other) ¡¡¡¡¡¡// µÃ·Öµã£ºÊäÈë²ÎÊýΪconstÐÍ
{
¡¡int length = strlen(other.m_data);
¡¡m_data = new char[length+1]; ¡¡¡¡¡¡¡¡//¼Ó·Öµã£º¶Ôm_data¼ÓNULL ÅжÏ
¡¡strcpy(m_data, other.m_data);
}
//¸³Öµº¯Êý
String & String::operate =(const String &other) // µÃ·Öµã£ºÊäÈë²ÎÊýΪconstÐÍ
{
¡¡if(this == &other) ¡¡¡¡//µÃ·Öµã£º¼ì²é×Ô¸³Öµ
¡¡¡¡return *this;
¡¡delete [] m_data; ¡¡¡¡¡¡¡¡//µÃ·Öµã£ºÊÍ·ÅÔ­ÓеÄÄÚ´æ×ÊÔ´
¡¡int length = strlen( other.m_data );
¡¡m_data = new char[length+1]; ¡¡//¼Ó·Öµã£º¶Ôm_data¼ÓNULL ÅжÏ
¡¡strcpy( m_data, other.m_data );
¡¡return *this; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//µÃ·Öµã£º·µ»Ø±¾¶ÔÏóµÄÒýÓÃ
}


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºÇóÒ»¸öÎÞÐòÊý×éÖеÚkСµÄÊý×Ö ÏÂһƪ£ºoracleʱ¼ä±È½Ï

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿