一个string类的简单实现案例
发布时间 - 2026-01-10 22:23:24 点击率:次string类中使用到了赋值构造函数、复制构造函数、构造函数、默认构造函数、析构函数、重载操作符等一些类操作
class String
{
public:
String()
{
data = new char[1]; //这里为什么使用new char[1]呢,虽然是一个字符,这是为了和析构函数保持对称,因为在别的构造函数中使用的char[]
data[0]='\0';
length = 0;
}
String(const char* str)
{
length = strlen(str);
data = new char[length+1];
strcpy(data,str);
data[length]='\0';
}
String(const char* str,int n)
{
length = n;
data = new char[n+1];
strncpy(data,str,n);
data[length] ='\0';
}
String(const String& src) //拷贝构造函数 也就是复制构造函数
{
length = src.length;
data = new char[length+1];
strcpy(data,src.data);
}
String& operator=(const String& src) //赋值构造函数
{
if(this == &src)
return *this;
delete [] data;
data = new char[src.length+1];
strcpy(data,src.data);
return *this;
}
String& operator=(const char* src) //另一种的赋值构造函数
{
delete [] data;
length = strlen(src);
data = new char[length+1];
strcpy(data,src);
return *this;
}
char& operator[](int n)
{
return data[n];
}
const char& operator[](int n) const //对于const成员函数 最好就是返回const的引用,这样是为了避免返回值被修改
{
return data[n];
}
friend ostream& operator<<(ostream& os,const String& st);
~String()
{
delete [] data;
}
private:
char* data;
int length;
};
ostream& operator<<(ostream& os,const String& st)
{
os<<st.data;
return os;
}
以上这篇一个string类的简单实现案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# string类的实现
# C# 为String类型增加方法详解
# 详解C++中实现继承string类的MyString类的步骤
# 探究C++中string类的实现原理以及扩展使用
# C++中的string类的用法小结
# 给大家
# 是一个
# 这是
# 希望能
# 这篇
# 小编
# 大家多多
# 返回值
# 类中
# 是为了
# char
# string
# str
# const
# length
# data
# cpp
# brush
# class
# public
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
如何在Windows虚拟主机上快速搭建网站?
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
php json中文编码为null的解决办法
网页设计与网站制作内容,怎样注册网站?
QQ浏览器网页版登录入口 个人中心在线进入
详解Android中Activity的四大启动模式实验简述
如何挑选优质建站一级代理提升网站排名?
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
如何在万网自助建站中设置域名及备案?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何在搬瓦工VPS快速搭建网站?
Bootstrap整体框架之JavaScript插件架构
如何确保FTP站点访问权限与数据传输安全?
如何快速完成中国万网建站详细流程?
如何在IIS7中新建站点?详细步骤解析
如何选择PHP开源工具快速搭建网站?
如何用美橙互联一键搭建多站合一网站?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
如何在阿里云ECS服务器部署织梦CMS网站?
如何快速上传建站程序避免常见错误?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
如何在景安服务器上快速搭建个人网站?
Laravel如何使用Livewire构建动态组件?(入门代码)
音乐网站服务器如何优化API响应速度?
Laravel如何保护应用免受CSRF攻击?(原理和示例)
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
如何为不同团队 ID 动态生成多个独立按钮
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
佛山网站制作系统,佛山企业变更地址网上办理步骤?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
手机软键盘弹出时影响布局的解决方法

