只简单写了几个函数

class String
{
public:
String(const char* pStr = NULL);
String(const String& str);
virtual ~String();
String &operator =(const String& str);
int Length() const;
const char* cstr() const;
friend std::ostream& operator<<(std::ostream& os, const String& str); private:
char* m_pData;
};
String::String(const char* pStr)
{
if (pStr == NULL)
{
m_pData = new char('\0');
}
else
{
m_pData = new char[strlen(pStr) + ];
strcpy(m_pData, pStr);
}
} String::String(const String& str)
{
m_pData = new char[str.Length() + ];
strcpy(m_pData, str.cstr());
   //类的成员函数可以直接访问作为其参数的同类型对象的私有成员。
   //即可写为strcpy(m_pData, str.m_pData);
}

int String::Length() const
{
return strlen(m_pData);
} const char * String::cstr() const
{
return m_pData;
} String::~String()
{
if (m_pData)
delete[] m_pData;
} String& String::operator =(const String& str)
{
if (this == &str)
return *this; delete[] m_pData;
m_pData = new char[str.Length() + ];
strcpy(m_pData, str.cstr()); return *this;
} std::ostream& operator<<(std::ostream& os, const String& str)
{
return os << str.cstr();
}
int main()
{
String s;
cout << s << endl; String s1("hello");
cout << s1 << endl; String s2(s1);
cout << s2 << endl; String s3("hello world");
cout << s3 << endl; s3 = s2;
cout << s3 << endl; String s4 = "lwm";
cout << s4 << endl; return ;
}

运行结果:

String构造函数的更多相关文章

  1. String构造函数originalValue.length&gt;size 它发生

    最近观看Jdk6于String源代码被发现String这种施工方法有.源内容如下面: public String(String original) { int size = original.coun ...

  2. c++ string构造函数学习

    #include <iostream>#include <string> using namespace std; int main(){ string a1; cout &l ...

  3. std::string构造函数

    string(); string (const string& str); string (const string& str, size_t pos, size_t len = np ...

  4. 在String中添加移动构造函数和移动赋值运算符

    13.50 没有定义析构函数 #include<iostream> #include<string> #include<memory> #include<ut ...

  5. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  6. Java 性能优化之 String 篇

    原文:http://www.ibm.com/developerworks/cn/java/j-lo-optmizestring/ Java 性能优化之 String 篇 String 方法用于文本分析 ...

  7. String类型的属性和方法

    × 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...

  8. Java String字符串方法

    1.String构造函数 1> String() 2> String(char[] chars) String(char[] chars,int startIndex,int numCha ...

  9. 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...

随机推荐

  1. 类ArrayList

    什么是ArrayList类 Java提供了一个容器 java.util.ArrayList 集合类,他是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储的元素. Array ...

  2. 哈尔滨工业大学(威海)第九届ACM程序设计竞赛 Virtual Youtuber

    链接 [https://ac.nowcoder.com/acm/contest/624/G] 题意 其实题意说的辣鸡死了,没有说明确. y is the subsequences that its s ...

  3. 用Case类生成模板代码

    将类定义为case类会生成许多模板代码,好处在于: ①会生成一个apply方法,这样就可以不用new关键字创建新的实例. ②由于case类的构造函数参数默认是val,那么构造函数参数会自动生成访问方法 ...

  4. CSS3动画效果transition

    1.transition的浏览器支持情况 IE10+支持,IE6\7\8\9都不支持!目前,其他浏览器最新版本都支持,不需要再加前缀 -webkit- 之类的了 2. 还是一步一步说说怎么用trans ...

  5. Linux下Nginx配置阿里云 SSL证书实现HTTPS访问

    这篇文章主要介绍了nginx配置ssl证书实现https访问的示例 1.服务器系统:Centos 2. 阿里云申请SSL证书 选择“免费版DV SSL”,点击立即购买: 下载证书 列表中找到已签发的证 ...

  6. 在windows环境利用celery实现简单的任务队列

    测试使用环境: 1.Python==3.6.1 2.MongoDB==3.6.2 3.celery==4.1.1 4.eventlet==0.23.0 Celery分为3个部分 (1)worker部分 ...

  7. 【转载】利用window.performance.timing进行性能分析

    利用window.performance.timing进行性能分析   性能分析... window.performance.timing中相关属性语义: // .navigationStart 准备 ...

  8. layui table默认选中指定行

    表格默认选中行,在回调里写入 done: function (res, curr, count) { tableData = res.data; $("[data-field='id']&q ...

  9. django xadmin(1)

    filter_horizontal 从‘多选框’的形式改变为‘过滤器’的方式,水平排列过滤器,必须是一个 ManyToManyField类型,且不能用于 ForeignKey字段,默认地,管理工具使用 ...

  10. 《玩转spring全家桶》学习笔记-------------丁雪丰

    一.spring 课程介绍 1.初识spring 2.数据操作 3.web开发 4.spring boot 5.spring cloud 二.初识spring Spring Boot.Spring C ...