#include <cstdlib> #include <string.h> #include <iostream> using namespace std; class String { public: String(const char *str = NULL);//普通构造函数 String(const String &other);//拷贝构造函数 ~String();//析够函数 String& operator =( const String &other); friend ostream& operator<<(ostream& os, const String & s); private: char *data ;//用于保存数据字符串 }; ostream& operator<<(ostream& os,const String& s) { int len = strlen(s.data ); for(int i=0;i<len;i++) { os<<s. data[i]; } return os; } String::String( const char *str) { if(str == NULL) { data = new char[1]; if(data != NULL) data = '\0' ; } else { int len = strlen(str); data = new char[len+1]; if(data != NULL) strcpy( data,str); } } String::String( const String &other) { int len = strlen(other.data ); data = new char[len+1]; if(data != NULL) strcpy( data,other.data ); } String::~String() { delete [] data ; } String& String::operator=( const String &other) { if(this == &other) return *this ; delete [] data ; data = NULL; int len = strlen(other.data ); data = new char[len+1]; if(data != NULL) strcpy( data,other.data ); return *this ; } ######################################################################################## int main( void) { String s1("string" ); String s2(s1); cout<< "s1:"<<s1<<endl; cout<< "s2:"<<s2<<endl; return 0; }
String类的实现
原创
©著作权归作者所有:来自51CTO博客作者415172536的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:centos上搭建ACE开发环境
下一篇:strcpy函数的实现
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
简易String类的实现
#ifndef MYSTRING_H#
#include #define ios -
c++ String类的实现
主要是通过这个例子,理解拷贝构造函数和赋值函数的区别:代码:#include <
拷贝构造函数 构造函数 赋值函数 -
java string 底层实现 string类的底层
java学习笔记String一、概述: 1)String声明为final的,不可被继承 2)String实现了Serializable接口:表示字符串是支持序列化的 实现了Comparable接口:表示String可以比
java string 底层实现 java 字符串 赋值 System