String构造函数
只简单写了几个函数
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构造函数的更多相关文章
- String构造函数originalValue.length>size 它发生
最近观看Jdk6于String源代码被发现String这种施工方法有.源内容如下面: public String(String original) { int size = original.coun ...
- c++ string构造函数学习
#include <iostream>#include <string> using namespace std; int main(){ string a1; cout &l ...
- std::string构造函数
string(); string (const string& str); string (const string& str, size_t pos, size_t len = np ...
- 在String中添加移动构造函数和移动赋值运算符
13.50 没有定义析构函数 #include<iostream> #include<string> #include<memory> #include<ut ...
- JavaScript中String对象的方法介绍
1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...
- Java 性能优化之 String 篇
原文:http://www.ibm.com/developerworks/cn/java/j-lo-optmizestring/ Java 性能优化之 String 篇 String 方法用于文本分析 ...
- String类型的属性和方法
× 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...
- Java String字符串方法
1.String构造函数 1> String() 2> String(char[] chars) String(char[] chars,int startIndex,int numCha ...
- 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...
随机推荐
- 史上最全的Spring-Boot-Starter开发手册
1.前面的话 我们都知道可以使用 SpringBoot 快速的开发基于 Spring 框架的项目.由于围绕 SpringBoot 存在很多开箱即用的 Starter 依赖,使得我们在开发业务代码时能够 ...
- 原生sql整理
mysql -uroot -p #登录mysql命令password: #输入密码 mysql> #每条mysql命令后面都要加分号结尾show databases; #打印整个mysql数据库 ...
- MessageDigest类
public abstract class MessageDigest extends MessageDigestSpi API中的中英文对照简介(未完) java.security.MessageD ...
- 02——Solr学习之Solr安装与配置(linux上的安装)
借鉴博客:https://www.jianshu.com/p/1100f54fcbd8 https://www.cnblogs.com/jepson6669/p/9134652.html 1.准备一个 ...
- 私有仓库 gitlab 部署笔记
--------------------------------------------gitlab简介------------------------------------------------ ...
- windows系统下的特殊目录导致的FileNotFoundException
环境:下面只有JDK(内含jre),没有外在的jre 读取的两个文件都是存在的,只是文件名不同 运行结果1 运行结果2 切换JDK 运行结果3: 运行结果4: 请留意:C:\windows\syste ...
- H5键盘事件处理
if (/Android/gi.test(navigator.userAgent)) { const innerHeight = window.innerHeight; window.addEvent ...
- RabbitMQ消息队列
RabbitMQ消息队列 !!! 注意,保证服务器的内存足够,磁盘足够,以及删除/etc/hosts中没有用的dns解析 # 优点,能够保证消息数据持久化,不丢失,支持高并发 安装学习rabbitm ...
- Delphi 获取DataSet传入参数后的SQL命令
ClientDataSet1.CommandText := sSQL; ClientDataSet1.Params.Clear; ClientDataSet1.CommandText :='SEL ...
- sql stuff函数的语法和作用
sql stuff函数用于删除指定长度的字符,并可以在制定的起点处插入另一组字符.sql stuff函数中如果开始位置或长度值是负数,或者如果开始位置大于第一个字符串的长度,将返回空字符串.如果要删除 ...