博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现一个string类
阅读量:5129 次
发布时间:2019-06-13

本文共 1307 字,大约阅读时间需要 4 分钟。

实现要实现:构造,析构,拷贝构造,赋值的功能

1. 提供构造函数 string(), string(const string & str),string(const  char * str), 

2. 析构函数: ~ string()

3. 成员函数(重载赋值函数):string &operator=(const string & str); 利用已有的string对象赋值

                                                  string & operator=(const char * str);// 直接用字符串赋值用char * 实现;

(返回引用,返回对象本身。 传入参数const    & 常量引用,传入本身不能改)

4. 成员函数(处理字符串的成员函数):

                      size_t size() const; //返回常量

                      void swap(string & str);//交换两个字符串

5. 成员函数(操作符重载):

。。。。

 

 

#include 
#include
#include
#include
using namespace std;class String{private: char * data_;public: size_t size()const { return strlen(data_); } const char * c_str() const{ return data_; } //无参的构造函数 String():data_(new char[1])//初始化类的成员data_,为初始化列表的方式。 { //初始化列表也可以表示为 // data_=new char[1]; *data_='\0'; } //有参的构造函数 String(const char *str) :data_(new char[strlen(str)+1]) // strlen(str)必须为常量; { strcpy(data_,str); } String(const String & s):data_(new char[s.size()+1]) { strcpy(data_,s.c_str());// 有一个值为const } //析构函数 ~String () { delete[] data_; } //函数返回引用返回的是对象本身 String& operator=(String s) { swap(data_,s.data_); return *this; }};

转载于:https://www.cnblogs.com/fanhaha/p/7148591.html

你可能感兴趣的文章
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
poj2569
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>
python if else elif statement
查看>>
网络编程
查看>>
文本隐藏(图片代替文字)
查看>>
java面试题
查看>>
提高码力专题(未完待续)
查看>>
pair的例子
查看>>
前端框架性能对比
查看>>
uva 387 A Puzzling Problem (回溯)
查看>>
12.2日常
查看>>
同步代码时忽略maven项目 target目录
查看>>
Oracle中包的创建
查看>>
团队开发之个人博客八(4月27)
查看>>