C++???????????
???????????? ???????[ 2015/12/1 10:38:46 ] ??????????????????? .NET
????????????????????????????
????????????????????????????????????δ???????????????????????£???????????????????——????????????????????????????????????????????????????????е????????????????????????????ü?????????????????е????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????
?????????????????????????char *m_data;
?????????????????????????????????????????????????????????????????ú????????????????????????????2?Σ???delete???????2?Σ????????????
?????????????????obj.m_data??obj1.m_data?????????棬?κ?????????????????????
???????????????????????????obj1.m_data??е??????б???????仰???????????????????????????????????????????????A obj1(obj);??????????????????????????????????????????????????????????obj1.m_data??е??????б???????????????????????????????й???
??????????????????delete obj.m_data?? obj.m_data??汻??????????obj.m_data??obj1.m_data???????????????obj1.m_data???????????????????delete obj1.m_data????????????????????????????????????й??? ???????????????????????μ??????洢???????????????????????????
??????????????????????????????????????A?????????A obj; A obj1(obj);????A obj1 = obj; ??????????????忽??????????C++???????????????????????????????????????????????????????“λ????”???????????????“?????”????????????????????к????????????????????????????????
??????????????????????????????????????????????????????????????????????????????п???????????????????????п?????????????????????????????????????
#include<iostream>
using namespace std;
class String
{
public:
char* GetChar()
{
return _ptr;
}
void swap(String&s)
{
char* tmp = s._ptr;
s._ptr = _ptr;
_ptr = tmp;
}
String(char*str)
:_ptr(new char[strlen(str) + 1])
{
strcpy(_ptr?? str);
}
String(const String&s)
:_ptr(NULL)
{
String tmp(s._ptr);
swap(tmp);
}
String& operator=(const String&s)
{
if (this != &s)
{
String tmp(s._ptr);
swap(tmp);
}
return *this;
}
~String()
{
if (_ptr)
{
delete[]_ptr;
}
}
private:
char* _ptr;
};
int main()
{
String s1("abcd");
String s2(s1);
String s3("efghs");
s3 = s2;
cout<< "s1:" << s1.GetChar() << endl;
cout<< "s2:" << s2.GetChar() << endl;
cout << "s3:" << s3.GetChar() << endl;
return 0;
}
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11