#include<iostream>
#include<string.h>
using namespace std;
class MyString
{
private:
char *m_pchString;
int m_nLength;
public:
MyString(const char *pchString="") // explain this
{
m_nLength = strlen(pchString) + 1;
m_pchString = new char[m_nLength]; // explain this
strncpy(m_pchString, pchString, m_nLength);
m_pchString[m_nLength-1] = '\0';
}
~MyString()
{
delete[] m_pchString;
m_pchString = 0;
}
char* GetString() { return m_pchString; } // explain this
int GetLength() { return m_nLength; }
};
int main()
{
MyString cMyName("Alex");
cout << "My name is: " << cMyName.GetString() << endl;
return 0;
}
爲什麼在這個新的運算符中使用....我瞭解了大部分,但我很困惑爲什麼char指針被分配一個數組使用new運算符....?這是一個C++代碼.....請幫我理解這段代碼
另請注意,GetString的返回值不是'const'。可以改變'MyString'之外的緩衝區,這與數據封裝的想法相矛盾。 – urzeit