String类的代码:

class String
{
public:String(char* str=""){_str = new char[strlen(str) + 1];strcpy(_str, str);}String(const String& str){_str = new char[strlen(str._str) + 1];strcpy(_str, str._str);}~String(){delete[] _str;}String& operator=(const String& str){if (&str == this)return *this;delete[] _str;_str = new char[strlen(str._str) + 1];strcpy(_str, str._str);return *this;}bool operator==(const String& str){return strcmp(_str, str._str) == 0;}friend ostream& operator<<(ostream& o,String& str){o << str._str;return o;}
private:char* _str;
};

包括构造函数,拷贝构造函数,析构函数,算数运算符重载。

下面是测试代码:

        String s1 = "hello";String s2 = "world";String s3 = "o";cout << "s1=" << s1 << endl;cout << "s2=" << s2 << endl;cout << "s3=" << s3 << endl;cout << endl;String s4(s1);String s5(s1);String s6(s1);s5 = s2;cout << "s4=" << s4 << endl;cout << "s5=" << s5 << endl;cout << (s4 == s5) << endl;cout << (s4 == s6) << endl;

测试结果:

转载于:https://blog.51cto.com/lzd1995/1762256

string类的实现(构造函数,析构函数,运算符重载)相关推荐

  1. c++单链表【构造函数、运算符重载、析构函数、增删查改等】

    c++中的单向链表写法:实现增删查改.构造函数.运算符重载.析构函数等. 建立头文件SList.h #pragma oncetypedef int DataType; //SList要访问SListN ...

  2. c++复习(2)拷贝构造函数与运算符重载

    目录 前言 拷贝构造函数 函数定义 调用 缺省(默认)的拷贝构造函数 -- 浅拷贝 涉及指针或者内存操作 用char * 用char[] 用string 自己写的拷贝构造函数 类中数据含有指针 类中含 ...

  3. C++ 类和对象(二):构造函数、析构函数、拷贝构造函数、运算符重载

    构造函数 析构函数 拷贝构造函数 运算符重载 class Date {}; 可以看到,上面那个类没有任何成员,是一个空类,但是它真的什么都没有吗?其实一个类在我们不写的情况下,都会生成6个默认的成员函 ...

  4. C++入门:构造函数,析构函数,拷贝构造函数,运算符重载详解

    目录 类的6个默认成员函数 一.构造函数 1.概念 2.特征如下: (1) 函数名与类名相同. (2)无返回值. (3)对象实例化时编译器自动调用对应的构造函数. (4)构造函数可以重载. (5)如果 ...

  5. 【跟学C++】C++类与对象—构造函数—析构函数(Study10)

    文章目录 1.面向对象(类与对象) 1.1 类 1.2 对象 1.3 访问之句点运算符(.) 1.4 访问之指针运算符(->) 2.public(公有)和private(私有) 3.构造函数 3 ...

  6. C++11之右值引用(三):使用C++11编写string类以及“异常安全”的=运算符

    前面两节,说明了右值引用和它的作用.下面通过一个string类的编写,来说明右值引用的使用. 相对于C++98,主要是多了移动构造函数和移动赋值运算符. 先给出一个简要的声明: class Strin ...

  7. 日期类计算器的实现以及运算符重载

    前言 众所周知,运算符重载是C++类与对象中非常重要的一环.今天我们介绍内容就是通过模拟实现日期类的计算机,来详细的了解运算符是如何重载的. 注:代码给在文末. 目录 前言 创建一个日期类 1.重载 ...

  8. C++派生类含有成员对象构造函数析构函数顺序

    参考博客:传送门1 当类中含有对象成员时: 类的构造函数要包含对成员对象的初始化,如果构造函数的成员初始化列表没有包含对成员对象的初始化,系统会自动调用成员对象的无参构造函数.顺序上:先调用成员对象的 ...

  9. 转换构造函数与类型构造函数与运算符重载函数

    #include <iostream> using namespace std; class complex { public:complex(){real=0;image=0;}comp ...

  10. C++实现CMatrix类的构造、实现及运算符重载

    C++实现CMatrix类的构造.实现及运算符重载 前言 一.CMatrix类的实现代码 CMatrix.cpp CMatrix.h main.cpp 二.运行截图 三.总结 构造函数 析构函数 运算 ...

最新文章

  1. Android——apk反编译
  2. Java 8 Stream中间操作(方法)示例
  3. 题解P3745期末考试
  4. Gink掉过的坑(一):将CCTableView导入到lua中
  5. 赛尔号通信数据的逆向分析与还原(思路篇)
  6. 优秀html5网页设计,五个国外优秀的HTML5酷站欣赏|H5开发第二课
  7. UE4中HUD、UMG、Slate之间的区别
  8. [转帖]一个老程序员的心理话(三)
  9. Swingbench 博客合集
  10. 教资报名网站显示无法访问此页面
  11. matlab小端模式合并,大端方式和小端模式【YC】
  12. ESP-IDF:ESP32 fatory分区不够用,重新分区的方法
  13. Python每日一练(5)-百词斩
  14. signature=cb30417dfa65eef445418827e0f0e0e6,以太坊P2P网络节点初始化
  15. java汉字转拼音区别多音字_java中文转拼音,支持多音字词组,不支持音标
  16. 2019张小龙微信公开课精华整理(未完待续....)
  17. Hive 错误 Expression not in GROUP BY key
  18. 【学习笔记】Docker(一)
  19. 关于远程桌面链接下调用显卡加速科学运算
  20. android studio升级的步骤,win7系统更新Android Studio的操作方法

热门文章

  1. 纪录片.BBC.数据之趣.The.Joy.of.Data.2016
  2. Express + Element-ui 实现图片/文件上传
  3. 使用SALT-API进入集成开发的简单样例
  4. Windows Server 2003 导入Java生成的证书,保证iis对CAS的访问
  5. GMapbook中文版上线
  6. vue2使用axios post跳坑,封装成模块
  7. 算法练习5---快速排序Java版
  8. Java 并发---ConcurrentHashMap
  9. uva1331三角剖分
  10. 学习进度(2016.3.13)