首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CC++:string的模拟实现

string的文档网站 string的介绍以及一些常见问题 String是一个管理字符数组的,要求这个字符数组结尾用 ‘\0’ 标识 涉及的问题如下: 拷贝构造和赋值重载实现 深拷贝...只读函数 ,则要加 const 2 、如果是 只写函数 ,则不能加 const 3 、如果 既是可读又是可写的函数 ,则要重载两个版本的函数,即 const 版本与 非const 版本 String的模拟实现...(定义在string.h中) 的整体框架(简单的直接在框架实现了) #include #include //运用C++风格的头文件 #include <cassert...const string& s); //现代写法的赋值运算符重载(深拷贝问题) void swap(string& s); //自己写的swap去调用全局swap完成成员变量的交换...capacity; //数组的容量(不包括'\0') size_t _size; //有效字符个数 static const size_t npos; //外定义

34620

CC++ 反汇编:分析实现原理

默认情况下在32位系统中所有的数据类型都不会超过4字节大小,使用一个栈元素即可完成数据的复制和传递,而对象是自定义数据类型,是除了自身以外的所有数据类型的集合,各个对象的长度不定,对象在传递的过程中是如何被复制和传递的呢...EAX寄存器中,以此来实现数据成员的传递,此处可能不太好理解,其实就是内部类的数据运算完毕以后会直接拷贝到外部类的堆栈空间中,外部类则直接遍历自己的堆栈空间就可以知道内部类的执行结果,从而实现结构的传递...,所谓多态顾名思义就是一个函数有多重形态,在C++中多态的意思是,具有不同功能的函数可以用同一个函数名,实现使用一个函数名调用不同内容的函数,从而返回不同的结果,这就是多态性,从系统实现的角度来分析,...多态性可分为两,静态多态与动态多态: 静态多态: 通常是通过函数或运算法重载实现的,静态多态性又称作编译时的多态性....,在基中霸占一段空间,在子类中实现其方法,但纯虚函数也是存在虚函数表,只不过该虚表默认是空表,因为该代码反汇编和前面所说的相同,这里就不在分析了.

50810
您找到你想要的搜索结果了吗?
是的
没有找到

CC++开发基础——模板

一,基础定义 模板是用来生成的蓝图,是一种创建的方式,同一套模板可以生成很多种不同的。 编译器基于模板生成的每个被称为模板的实例。...第一次使用模板类型声明变量时,会创建模板的一个实例, 以后定义同类型的变量时,会使用已经创建的第一个实例。 模板有许多应用,最常见的应用是定义容器。...模板和一样,可以有友元,其友元可以是,函数或者其他模板。 如果一个派生继承自该类模板,那么这个派生也必须是模板。...: 代码样例:用模板实现的Array template class Array { private: T* elements; size_t size...myArray; 二,模板的成员函数 在模板的模板体中定义的成员函数,与普通的一样,成员函数可以看作是所有模板实例的内联函数。

19450

CC++之string小结

: C++ strtoll() (1)C++字符串和C字符串的转换           C++提供了三种方法可以将C++字符串转化为C字符串,分别是data(),c_str(),copy()成员函数来实现...比如说调用c_str()之后字符串发生变化,则c_str()生成的指针指向的数据也会发生变化)           3)copy(p,n,size_type_off=0)表明从string类型对象中至多复制...n个字符到字符指针p指向的空间,默认指定位置开始(0),返回真正从对象中复制的字符。...;//后面主要的是可变参数,是一些变换的格式和对应需要变换的对象                     功能:如果格式化字符长度小于size,则全部复制,并在末尾添‘\0’;如果大于size,则只复制其中的...long)函数                   long int strtol(const char*nptr,char**endptr,int base);                    实现字符串

42900

CC++ Zlib库封装MyZip压缩

为了方便地处理ZIP压缩和解压缩操作,开发者通常使用各种编程语言和库来实现这些功能。本文将聚焦于一个简化的C++实现,通过分析代码,我们将深入了解其设计和实现细节。...的功能实现 MyZip旨在提供简单易用的ZIP压缩和解压缩功能。通过成员函数Compress和UnCompress,该类使得对目录的ZIP压缩和ZIP文件的解压变得相对容易。...将如上的压缩与解压方法封装成MyZip,调用zip.Compress()实现压缩目录,调用zip.UnCompress()则实现解压缩目录。...delete pGlobalInfo; if (unzfile) { unzClose(unzfile); } return true; } }; 如何使用...压缩文件时可以通过调用zip.Compress()函数实现,该函数接受3个参数,第一个参数是需要压缩的目录名,第二个参数是压缩后保存的文件名,第三个参数则是压缩后主目录的名字,我们以压缩D:\\csdn

40810

CC++ 套接字通信的封装

简单地说就是封装之后的可以隐藏掉某些属性使操作更简单并且的功能要单一,如果要代码重用可以进行之间的继承,如果要让函数的使用更加灵活可以使用多态。...因此,我们需要封装两个:客户端和服务器端的。...功能函数的参数变少了,因为成员函数可以直接使用内部的成员变量。...将客户端变成一个专门用于套接字通信的即可。服务器端整个流程使用服务器 + 通信来处理;客户端整个流程通过通信的来处理。...2.2.2 服务器 服务器主要用于套接字通信的服务器端,并且没有通信能力,当服务器和客户端的新连接建立之后,需要通过 TcpSocket 的带参构造将通信的描述符包装成一个通信对象,这样就可以使用这个对象和客户端通信了

1.9K31
领券