C++中的STRING数据 重载 = 和数组下标
生活随笔
收集整理的這篇文章主要介紹了
C++中的STRING数据 重载 = 和数组下标
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Mstring_Test.c主文件
#include <iostream> #include "Mystring.h"using namespace std;int main() {Mystring s1;Mystring s2("s2");Mystring s2_2 = NULL; //相當于傳遞的參數是 NULL指針Mystring s3 =s2;Mystring s4;s4 =s2; //復用=操作符的復用函數 函數 =操作符的參數 是一個對象s4 ="s2222222"; // 調用復用等號操作符的 傳遞指針的函數 =操作符的參數是一個字符串首地址cout << "hello world!" << endl;system("pause");return 0; }Mstring.cpp類cpp文件
#define _CRT_SECURE_NO_WARNINGS #include "Mystring.h"Mystring::Mystring() {m_len = 0;m_p = new char[m_len +1]; //申請的是一個數組所以四方房的時候按照數組釋放strcpy(m_p,"") ; } Mystring::~Mystring() {if(m_p != NULL){delete [] m_p; //申請的時候是按照數組進行申請的m_p = NULL;m_len = 0;}}Mystring::Mystring(const char *p) {if(m_p = NULL) //支持定義Mstring s2 = NULL;的定義{m_len = 0;m_p = new char[m_len +1];strcpy(m_p,"") ;}else{m_len = 0;m_p = new char[m_len +1];strcpy(m_p,p) ;}} //拷貝構造函數 Mystring::Mystring(const Mystring& s) {m_len =s.m_len;m_p = new char[m_len+1];strcpy(m_p,s.m_p);}//操作符重載 //實現 s2 = "s1243346";的操作 Mystring& Mystring::operator=(const char *p) {//因為能夠調用這些函數說明 s2已經存在了所以要釋放if (m_p != NULL){delete [] m_p;m_len =0;}//根據p分配內存if(p == NULL){m_len = 0;m_p = new char[m_len+1];strcpy(m_p,"");}else{m_len = strlen(p);m_p = new char[m_len+1];strcpy(m_p,p);}return *this; //取出字符串但是將其返回的時候返回的是一個累的對象 } //s1 = s2; Mystring& Mystring::operator=(const Mystring &s) {//因為能夠調用這些函數說明 s2已經存在了所以要釋放if (this->m_p != NULL){delete [] this->m_p;this->m_len =0;}this->m_len = s.m_len;this->m_p = new char[m_len+1];strcpy(this->m_p,s.m_p);return *this; //取出字符串但是將其返回的時候返回的是一個累的對象}//在這里重載的目的就是為了取用字符中的數據 char& Mystring::operator[](int index) {return this->m_p[index];}Mstring.h文件
#pragma once #include <cstring>class Mystring { public:Mystring();Mystring(const char *p);Mystring(const Mystring& s);~Mystring();//操作符重載Mystring& operator=(const char *p);Mystring& operator=(const Mystring &s);//[] 重載 viewchar& operator[](int index); //[]其實就是為了返回 0 好元素的地址 private:int m_len;char *m_p; };總結
以上是生活随笔為你收集整理的C++中的STRING数据 重载 = 和数组下标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作者:李喜莲(1992-),女,北京大学
- 下一篇: 柔性数组