日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中的STRING数据 重载 = 和数组下标

發布時間:2025/3/15 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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数据 重载 = 和数组下标的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。