首页 > 编程语言 >C++面向对象高级开发(六)写好一个String类

C++面向对象高级开发(六)写好一个String类

时间:2022-10-31 19:47:01浏览次数:52  
标签:String 初值 C++ 面向对象 new 拷贝 赋值 分配 构造函数

类的内部:

public:

构造函数、拷贝构造、拷贝赋值、析构函数的接口 和辅助函数以及它的实现

private:

参数

 

 类的外部:

内联:inline

构造函数:

判断是否有初值:

有初值:

  • 分配空间(new)
  • 拷贝内容到空间strcpy
  • 成功创建新的字符串

没有初值:

  • 分配空间(new)放结束符号' \0 '
  • 把结束符号赋值

析构函数:

  • 释放内存(delete[ ])

 

 

 

拷贝构造函数:

分配空间(new)

拷贝内容到字符串(分配初值strcpy)

 

 拷贝赋值:

  • 判断是否自我赋值(来源端和目的端相同)
  • 来源端赋值到目的端
  • 释放内存(delete [ ] )目的端
  • 分配一段足够大的空间
  • 来源端拷贝到目的端

 

 

标签:String,初值,C++,面向对象,new,拷贝,赋值,分配,构造函数
From: https://www.cnblogs.com/slowlydance2me/p/16845495.html

相关文章

  • C++ 11 random库
    C++11random库random库的组件主要有随机数引擎和随机数分布引擎随机数引擎类类名:default_random_engine声明方法:类名对象名随机数引擎类是可以独立运行的随机数......
  • Java学习笔记day1——String类型变量
    /*String(字符串)类型变量的使用*1.String属于引用数据类型;*2.String用双引号""进行定义;*/classStringTest{publicstaticvoidmain(String[]ag......
  • [单片机框架] [str_hex] 字符串和16进制互转 string to hex
    /*********************************************************************************@filestr_hex.c*@authorjianqiang.xue*@VersionV1.0.0*@Date2021-04......
  • Qt on Android 开发之 C++与Java 交互
    目录​​简述​​​​Qt引入Android模块​​​​Java示例​​​​Cpp与java交互​​简述我做了一个小例子,来实现了C++与Java之间的交互。该示例是以整形和字符型举例说明,......
  • 面向对象编程
    1.对象Object对象的两个部分:属性、行为面向对象编程的三大特点:封装、继承、多态2.封装写程序的时候也可以采用封装的理念,对于一些内容我们不提供接口来使用它们,它们属......
  • C语言面向对象思想
     (17条消息)C语言面向对象思想_lzs_blog的博客-CSDN博客_c实现面向对象C语言面向过程的,而C++是面向对象的。l 面向过程,我认为过程就是步骤,是解决问题的按部就班。l......
  • C++ 不知树系列之认识二叉树(顺序、链表存储的实现)
    1.概念什么是二叉树?顾名思义,二叉树指树中的任何一个结点(除叶结点)的子结点不能多于2个。二叉树可分为:一般二叉树。只要符合二叉树的定义便可。满二叉树。满的意......
  • grpc demo python客户端 c++服务端
    项目需啊将网站上传的图片传入c++推理引擎,网站使用flask架构,python编写,图片推理引擎是一个单独的server,c++编写,因此用grpc来传输比较合适。理论上来说只要规定好proto文件,......
  • Python学习五:面向对象设计程序
    文章目录​​一、引言​​​​二、对象​​​​定义​​​​三、类​​​​定义​​​​四、面向对象程序的设计特点​​​​三大基本特点:封装、继承、多态​​​​1.封装​......
  • C++&Python 描述 LeetCode 1.两数之和
    C++&Python描述LeetCode1.两数之和  大家好,我是亓官劼(qíguānjié),在【亓官劼】公众号、、GitHub、B站、华为开发者论坛等平台分享一些技术博文。放弃不难,但坚持......