简单string类及对象构造测试

让我们一步一步实现一个完整的 String 类:构造、拷贝、赋值、移动和析构 一、引言 我们在面试 C++ 相关岗位的时候,总会遇到这样的笔试面试题: 请你实现一个 String 类 这道题,说简单也简单,说难也难,是一个考察 C++ 基础的非常好的题目。正好在今天,我萌生了一个想法,那就是一步一步,一点一点,从构造析构,到拷贝赋值,再到 C++11 的移动,我们都给这个 String 类加进去,让我们看看,这将是一个怎样的类 :) 让我们先写下这么一段代码... 阅读详情

class string
{
public:
 string():data(0){
  printf("string()/n");
  data = new char[1];
  *data = '/0';
 }
 string(const char* str):data(0){
  printf("string(const char* s)/n");
  if (str==NULL) return;
  
     data = new char[strlen(str)+1];
  
  memcpy(data, str, strlen(str));
  data[strlen(str)] = '/0';
 }
 string(const string& str):data(0){
  printf("string(const string& s)/n");
  data = new char[strlen(str.data)+1];

  memcpy(data, str.data, strlen(str.data));
  data[strlen(str.data)] = '/0';
 }
 void operator=(const string& str){
  printf("operator=(const string& s)/n");
  if (data) delete []data;
  
  data = new char[strlen(str.data)+1];
  data[strlen(str.data)] = '/0';

  memcpy(data, str.data, strlen(str.data));
 }
 ~string(){
  printf("~string()/n");
  if (data) delete []data;
 }
private:
 char* data;
};

void main()
{
 string a("a");
 string b = "b";
 string c(a);
 string d = b;
}
运行结果:
string(const char* str)
string(const char* str)
string(const string& str)
string(const string& str)

MT6771 Android13 背光曲线调试与光感数据校准实战 本文详细介绍了MT6771平台在Android 13系统上进行背光曲线调试与光感数据校准的实战经验。针对高亮度环境下背光误调节问题,深入分析了光感数据上报机制,并提供了驱动层配置修改、背光曲线优化及常见问题解决方案,帮助开发者快速定位并解决类似问题。 阅读详情

相关推荐

解决fetch_california_housing数据集403错误的三种实用方法

本文针对机器学习初学者加载fetch_california_housing数据集时常见的HTTPError 403: Forbidden错误,提供了三种经过实测的解决方案。详细介绍了手动下载与本地替换、修改源码下载路径以及配置网络访问策略的具体步骤,帮助用户根据自身网络环境和开发场景选择最佳方法,确保数据集顺利加载。

weixin_29074295的博客 550

大一java期末考试模拟题,java期末考试模拟试题-final

java期末考试模拟试题-final 《JAVA 语言程序设计》期末考试模拟试题 1 一、选择题( 每小题 1 分,共 10 分,注:选择答案可能不止一个正确) 1、编译 Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展 名为( ) 。A. .java B. .classC. .html D. . 2、设 x = 1 , y = 2 , z = 3,则表达式...

weixin_42676824的博客 1118

WRF所需气象数据的下载方法

#数据下载是个大问题,巧妇难为无米之炊,没有数据就无法模拟啦,疫情期间国外服务器响应慢,打开网页慢都很正常啦~ WRF数据所需要的外部数据分为两种:静态地理数据,grib格式的气象数据(NAM、GFS、RUC、AGRMET等)。静态地理数据可以从WRF官网获得,比较简单,这里不做介绍。所以这篇日志重点介绍的是气象数据的获取。 提前说明,WRF官网不提供气象数据,但WRF官网提供各类气象数据的下载网址链接,所以我们下载一般还是从WRF官网开始。首先进入WRF官网,然后点击WRF ARW Uusres’ .

六出的博客 1万+

string类的六种构造函数

// stringctortest.cpp : 定义控制台应用程序的入口点。 //测试string类的六个构造方法 #include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) {     string one("my first string

songxiawu的专栏 524

手把手教你用CANopen SDO报文控制步进电机(附CIA402协议详解)

本文详细解析了如何通过CANopen SDO报文控制步进电机,深入讲解CIA402协议的核心架构、状态机模型及对象字典管理,并提供实战代码示例。从SDO报文构造到多轴同步控制,帮助开发者掌握工业级步进电机的精确控制技术,适用于自动化设备开发。

weixin_33737774的博客 485

电机瞬态分析基础(2):理想电机的基本假设和正方向规定

电机瞬态分析基础之理想电机假设条件和正方向规定

weixin_45670943的博客 1145

String类构造函数全攻略

C++中新增添的string类在字符串使用的时候,使用方便,功能也更强大! string的多种定义方式。看下面的一段代码: // the construction of string #include #include using namespace std; int main() { char name[]="Bill Gates"; string s1,s2("Steve

IOT_Change的专栏 666

Android Input——输入系统介绍(一)

Input 系统对于提供流畅、灵敏和一致的用户交互体验至关重要,它需要在不同的设备、场景和应用中保证输入事件的正确性、及时性和安全性。Android 输入系统是一个复杂但高效的设计,旨在处理来自各种输入设备(如触摸屏、键盘等)的用户交互,并将这些交互转换为应用程序可以理解和响应的形式。EventHub:输入系统的最底层,直接与硬件通信,监听和读取输入设备的原始事件。:从 EventHub 获取原始输入事件,对其进行解析,转化为更高层次的事件,以便上层应用或服务能够理解。

小旭的专栏 1710

编写类String 的构造函数、析构函数

/ String的析构函数 String::~String(void) { delete [] m_data; // 由于m_data是内部数据类型,也可以写成 delete m_data; } // String

Moonset 598

基于Simulink的电力电子负载特性模拟仿真实例

电阻性负载是最简单的负载形式,其阻抗为纯电阻,电流和电压之间的关系符合欧姆定律。电阻性负载的特点是消耗能量,不会存储能量。本示例将以一个典型的直流电源供电系统为例,展示如何利用Simulink进行不同负载特性的仿真模拟。直流电源:提供固定电压输入。逆变器(可选):根据需要产生PWM调制信号,驱动负载。负载模块:模拟不同类型的负载特性,如电阻性负载、电感性负载和容性负载。测量模块:用于观察负载上的电压和电流波形。系统架构视图plaintext深色版本v| || |

xiaoheshang_123的博客 429

基于MATLAB的多无人机多任务调度算法——CBBA带时间窗

本文将介绍基于MATLAB的CBBA算法,并对其进行改进,加入时间窗概念,以提高多无人机系统的调度效率和性能。时间窗用于限定任务的执行时间范围,以避免任务执行时间过长或过短导致的问题。具体而言,我们为每个任务设置一个允许的最早开始时间和最晚结束时间,并在任务分配的过程中考虑这些时间约束。在多无人机系统中,需要将若干个任务分配给不同的无人机完成,以实现高效的任务执行。以上是关于基于MATLAB的多无人机多任务调度算法CBBA带时间窗的简要介绍和源代码实现。多无人机系统的调度问题。

BUG?不存在的! 1898

编写类String的构造函数、析构函数和赋值函数

这个在面试或笔试的时候常问到或考到。已知类String的原型为:class String{public:     String(const char *str = NULL);// 普通构造函数     String(const String &other);    // 拷贝构造函数     ~ String(void);    // 析构函数     String &

3484

Unreal5从入门到精通之初学者碰到解决不了的问题怎么办?

在学习Unreal的过程中,你曾陷入困境了吗?对于我来说,这种情况发生得比我愿意承认的要多得多。幸运的是,除了一般地在网上搜索之外,还有很多地方可以获得虚幻引擎的帮助。

TxNet 979

第二课 类和对象

9月10号,第二课,是有关类与对象的。类是抽象的,对象是具体的,可以通过类来创建对象。java中每一个java程序中必须只有一个public类,但是不是每一个public类中必须有主函数。例如我们写个Student类,里面没有主函数,再新建一个为.Test文件进行测试,Test类中包含主函数。String类型默认值为null,但是null与””不一样,null在内存中没有保存任何内容,而“"在内存

u011146674的专栏 476

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【C++】string学习 — 手搓string类项目

这篇文章我们模拟实现了string类,这对于我来说是一次不小的挑战,相信我会继续进步的!!!

叫我龙翔的博客 1934

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【C++】string类(上)

了解和掌握类的使用方法,打开C++编程的大门

s_little_monster的博客 7448

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【C++】string类

string类常用接口

小羊的博客 4099

从认识String类,到走进String类的世界

作为一个常用的数据类型,跟随小编一同进入String的学习吧,领略String的一些用法。

2301_80350265学无止尽5的博客 3529

string类的介绍与使用【C++】

string类是编程语言中用于表示和操作字符串的基本数据类型或类。它提供了一系列方法和操作,允许开发者对字符串进行创建、修改、查找、比较、转换等。string类通常具有不可变性,意味着一旦创建了字符串对象,其内容就不能被修改,但可以创建新的字符串对象来表示修改后的内容。这种特性有助于在多线程环境中保持数据的安全性。string类还提供了各种构造函数、操作符重载和格式化功能,使字符串操作更加灵活和高效。

qq_74013365的博客 3512

string类

string类

m0_69323023的博客 549

【C++】string类的模拟实现

本文围绕 C++ 中 string 类展开。首先介绍了 string 类的模拟实现,包括构造函数、浅拷贝与深拷贝问题,以及拷贝构造和赋值运算符重载的传统与现代写法。现代写法利用临时对象和自动析构特性,提高效率与资源利用率。还介绍了 string 类的其他接口如迭代器和各种操作函数等。接着说明了在 vs 和 g++ 下 string 的结构特点。此外提到了写时拷贝的概念及读取缺陷。最后给出了扩展阅读方向。

2401_82610555的博客 1963

C++string类

系列文章目录 文章目录系列文章目录前言一、标准库中的string类1.string类简介2.常用接口说明3.string类对象的访问及遍历操作二、使用步骤1.引入库2.读入数据总结 前言 在C语言中,字符串是以’\0’结尾的字符的集合,为了操作方便,C标准库提供了一些str系列的库函数,但这些库函数与字符串是分离开的,不符合面向对象的编程思想,而且底层空间需要用户自己管理,稍不留神可能就会造成越界访问。所以,C++标准库中增加了string类。 一、标准库中的string类 1.string类简介 s

weixin_44614083的博客 6735

【JAVA】 String 类简述笔记

string是C++、java、VB等编程语言中的字符串,用双引号引起来的几个字符,如"Abc",“一天”.字符串是一个特殊的对象,属于引用类型。在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。今天我们来着重讲解一下JAVA中的String类。

weixin_73602725的博客 2876

【我与Java的成长记】之String类详解

String 类是 Java 中用于表示字符串的核心类之一。它提供了丰富的方法来操作字符串,包括连接、拆分、替换、查找、截取等,使得字符串处理变得简单和高效。理解String为什么具有不可变性StringBuffer、StringBuilder和String的区别为什么StringBuilder比StringBuffer总是快了一毫秒模拟简单String类方法的实现为什么StringBuilder和StringBuffer比String快那么多呢?

古德猫宁的博客 4335

【string类的简单模拟实现】

有关String类保姆级别的教学实现,快来看看吧!

m0_68872612的博客 881

编写类String的构造函数、析构函数和赋值函数,已知类String的原型

编写类String的构造函数、析构函数和赋值函数(转载) C++代码  class String { public: String(const char *str = NULL);// 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数

a13271785989的专栏 2247
上一篇: 关于C++复杂性的零碎思考(myan)
下一篇: C、C++中指针加 1 的问题
evers
博客等级 码龄24年 7粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值