当前位置: 首页 > news >正文

本地南昌网站建设公司唐山市做网站

本地南昌网站建设公司,唐山市做网站,网站程序授权怎么做,wordpress农历插件MyString是一个自定义的字符串类&#xff0c;它封装了一些常见的字符串操作和功能。下面是一个简单的MyString类的实现示例&#xff1a; #include <iostream> #include <cstring>class MyString { private:char* m_data; // 用于存储字符串的字符数组int m_length…

MyString是一个自定义的字符串类,它封装了一些常见的字符串操作和功能。下面是一个简单的MyString类的实现示例:

#include <iostream>
#include <cstring>class MyString {
private:char* m_data; // 用于存储字符串的字符数组int m_length; // 字符串的长度public:// 默认构造函数MyString() {m_data = nullptr;m_length = 0;}// 带参构造函数MyString(const char* str) {m_length = strlen(str);m_data = new char[m_length + 1]; // +1 用于存储字符串结束符'\0'strcpy(m_data, str);}// 拷贝构造函数MyString(const MyString& other) {m_length = other.m_length;m_data = new char[m_length + 1];strcpy(m_data, other.m_data);}// 析构函数~MyString() {delete[] m_data;}// 获取字符串长度int length() const {return m_length;}// 获取字符串内容const char* c_str() const {return m_data;}// 重载赋值运算符MyString& operator=(const MyString& other) {if (this != &other) {delete[] m_data;m_length = other.m_length;m_data = new char[m_length + 1];strcpy(m_data, other.m_data);}return *this;}// 重载加法运算符MyString operator+(const MyString& other) const {MyString newString;newString.m_length = m_length + other.m_length;newString.m_data = new char[newString.m_length + 1];strcpy(newString.m_data, m_data);strcat(newString.m_data, other.m_data);return newString;}
};int main() {MyString str1("Hello");MyString str2(" World");MyString str3 = str1 + str2;std::cout << "str1: " << str1.c_str() << std::endl;std::cout << "str2: " << str2.c_str() << std::endl;std::cout << "str3: " << str3.c_str() << std::endl;return 0;
}

在上面的示例中,MyString类封装了一个字符数组m_data来存储字符串的内容,以及一个整数m_length来记录字符串的长度。它提供了默认构造函数、带参构造函数、拷贝构造函数和析构函数来管理字符串的内存。

MyString类还提供了一些成员函数,如length()用于获取字符串的长度,c_str()用于获取字符串的内容,以及重载的赋值运算符和加法运算符,使得可以方便地进行字符串的赋值和拼接操作。

在main函数中,我们创建了两个MyString对象str1和str2,并使用重载的加法运算符将它们拼接成一个新的字符串str3。最后,我们输出了这三个字符串的内容。

4 实例——MyString的实现

/* 
* C++ string 类的实现
* 1. 构造函数和析构函数
* 2. 字符串长度
* 3. 重载=运算符
* 4. 重载+=运算符
* 5. 重载<< >> 运算符
* 6. 重载比较运算符
* 7. 重载[]下标运算符
*/#include <iostream>
#include <cstring>
using namespace std;class MyString
{
private:char * str;int length;
public:// 长度int size ()const {return length;};char* getstr()const{return str;}// 默认构造函数MyString();// 字符串构造函数MyString(const char*);// 复制构造函数MyString(const MyString& b);// 重载等号运算符MyString& operator=(const MyString &b);// 重载+=运算符MyString& operator+=(const MyString &b);// 重载比较运算符bool operator<(const MyString &b);// 重载下标运算符char& operator[](const int &index) const ;// 重载输入输出操作friend ostream& operator<<(ostream& ,const MyString &b);~MyString();
};MyString::MyString()
{str = new char[1];str[0]='\0';length = 0;
}MyString::MyString(const char* b){if(b){length = strlen(b);str = new char[length+1];strcpy(str,b);}else{MyString();}
}
MyString::MyString(const MyString&b){length = b.size();if(length>0)str = new char[length+1];elseMyString();
}MyString& MyString::operator=(const MyString &b){if(&b == this){return *this;}delete[] str;length = b.size();str = new char[length + 1];strcpy(str,b.getstr());return *this;
}MyString& MyString::operator+=(const MyString&b){if(b.size()==0){return *this;}char* temp = new char[length+b.length+1];strcpy(temp,str);strcat(temp,b.getstr());delete[] str;str = temp;return *this;
}char& MyString::operator[](const int &index)const {if(index>length)return str[length];return str[index];
}bool MyString::operator<(const MyString &b){for(int i=0;i<length;i++){if(i>b.size())return false;if(b[i]>str[i])return true;if(b[i]<str[i])return false;}return true;
}MyString::~MyString()
{delete[] str;
}// 外部定义一个函数,内部声明为友元
ostream& operator<<(ostream &out,const MyString&b){out<<b.getstr();return out;
}int main()
{// 测试函数MyString s1,s2="123",s3,s4="456";s3=s2;s1=s2;s1+=s1;cout<<s1<<endl;cout<<s2<<endl;cout<<s3<<endl;cout<<(s3<s4)<<endl;cout<<endl;return 0;
}
http://www.yayakq.cn/news/258891/

相关文章:

  • 郑州网站个人开发用js做简单的网站页面
  • 自建营销型网站模板手机网站推广方案
  • 哪些网站有二维码做网站查询违章
  • 免费开源的建站系统网站的音乐链接怎么做
  • 旅游网站建设备案武邑县建设局网站
  • 常用网站开发技术和工具策划公司怎么找客户
  • 开发网站公司有哪些苏州园区网站建设公司
  • 2017网站开发语言asp网站开发实训报告
  • 汕头网站优化哪家好东莞建设银行电话号码
  • 沁水做网站wordpress登录验证码
  • 开发网站用php还是jsp如何升级网站后台
  • 做项目网站要不要备案建设网站租用空间
  • 专业定制网站建设哪里有网站转化怎么做
  • 广西智能网站建设设计黄页号码标记申诉
  • 企业网站建设备案都需要什么甘肃庆阳今天重大新闻
  • 做网站怎样连数据库网站网页设计原则
  • 太原网站建设策划深圳品牌设计机构
  • 邯郸做网站代理org域名注册条件
  • 理财网站免费建设郑州网站制作价格
  • 网站建设要咨询哪些内容wordpress如何上传mp4
  • php网站如何做多语言国外网站在国内做镜像站点
  • 网站建设的解决办法怎样仿制网站
  • 网页制作的开发平台seo营销技巧培训班
  • 深圳网站设计 商城做暧小视频免费视频在线观看网站
  • 网站建设与网页设计教程视频室内设计培训班哪里好
  • 做网站哪种域名好记最佳经验网站
  • 西安网站建设winkuo软件下载大全免费安装
  • 历史看过的网站网站类型怎么分
  • 河南郑州旅游网站制作互联网站建设维护是做什么的
  • 坪地网站建设代理商常见的网站空间主要有