1:賦值運算子函式
如下為型別CMyString的宣告,請為該型別新增賦值運算子函式。
class CMyString
{
public:
CMyString(char* pData = nullptr);
CMyString(const CMyString& str);
~CMyString(void);
CMyString& operator = (const CMyString& str);
void Print();
private:
char* m_pData;
};
CMyString::CMyString(char *pData)
{
if(pData == nullptr)
{
m_pData = new char[1];
m_pData[0] = '\0';
}
else
{
int length = strlen(pData);
m_pData = new char[length + 1];
strcpy(m_pData, pData);
}
}
CMyString::CMyString(const CMyString &str)
{
int length = strlen(str.m_pData);
m_pData = new char[length + 1];
strcpy(m_pData, str.m_pData);
}
CMyString::~CMyString()
{
delete[] m_pData;
}
CMyString& CMyString::operator = (const CMyString& str)
{
if(this == &str)
return *this;
delete []m_pData;
m_pData = nullptr;
m_pData = new char[strlen(str.m_pData) + 1];
strcpy(m_pData, str.m_pData);
return *this;
}
相關文章
- 劍指Offer--面試題1:賦值運算子函式面試題賦值函式
- 運算子-賦值運算子賦值
- C++ 禁用類的複製建構函式和賦值運算子C++函式賦值
- JavaScript 等號 = 賦值運算子JavaScript賦值
- Python學習-算術運算子,賦值運算子和複合運算子Python賦值
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- Python 賦值與運算子和連線符Python賦值
- java零基礎自學第一天②,運算子:表示式,算術運算子,+操作,賦值運算子,自增自減運算子,關係運算子,邏輯運算子,三元運算子Java賦值
- Python中“+=”指什麼?賦值運算子包括哪些?Python賦值
- ECMAScript 安全賦值運算子 (?=) 提案介紹及其 Polyfill賦值
- Kotlin 運算子詳解:算術、賦值、比較與邏輯運算子全解析Kotlin賦值
- 過載運算子、解構函式函式
- 賦值運算子和+號的用法(兩個練習)賦值
- js運算子優先順序及賦值運算var a = {n:1};var b = a;a.x = a = {n:2};JS賦值
- JavaScript函式引數解構賦值JavaScript函式賦值
- ES6 - 函式與剩餘運算子函式
- [MySQL光速入門]010 運算子與函式MySql函式
- PostgreSQL:陣列——型別、運算子和函式SQL陣列型別函式
- PostgreSQL:數字——型別、運算子和函式SQL型別函式
- PostgreSQL:時間——型別、運算子和函式SQL型別函式
- C++ 過載運算子和過載函式C++函式
- Dart函式、類和運算子-處理資訊Dart函式
- python-算數運算子對應的函式Python函式
- python-邏輯運算子對應的函式Python函式
- PostgreSQL:網路地址——型別、運算子和函式SQL型別函式
- 建構函式,拷貝賦值函式的N種呼叫情況函式賦值
- ES6-解構賦值,語義增強,擴充套件運算子賦值套件
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- 4-1 運算子
- 運算子與表示式
- 為什麼在pyhton中不能用函式重新賦值函式賦值
- Python運算子和表示式Python
- 運算子 運算子
- 不用任何賦值的程式設計稱為*函式式*程式設計賦值程式設計函式
- 沒有返回值的建構函式是怎麼完成賦值的?函式賦值
- 使用解構賦值與擴充套件運算子,讓你的程式碼更優雅賦值套件
- Solidity語言學習筆記————23、函式呼叫和賦值Solid筆記函式賦值
- matlab如何給未知數及包含未知數的函式賦值Matlab函式賦值