#include"iostream"
using namespace std;
class String{
private:
char *str;
public:
String() :str(NULL){}
const char*c_str(){ return str; }
char*operator=(const char*s);
~String(){};
String & operator=(const String&);
String(String &s);
};
char* String::operator=(const char*s){
if (str) delete[]str;
if (s){
str = new char[strlen(s) + 1];
strcpy(str, s);
}
else
str = NULL;
return str;
}
String::String(String &s){
if (s.str){
str = new char[strlen(s.str) + 1];
strcpy(str, s.str);
}
else{
str = NULL;
}
}
String& String::operator = (const String& s){
if (str == s.str) return *this;
if (str) delete[]str;
if (s.str){
str = new char[strlen(s.str) + 1];
strcpy(str, s.str);
}
else{
str = NULL;
}
return *this;
}
int main(){
String s;
s = "Hello";
cout << s.c_str() << endl;
return 0;
}
赋值运算符重载:字符串直接赋值给对象
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 有这样一个类A,有它的两个对象a, b。它重载了赋值运算符。那么A a = b;这样一条简单的语句,你们想过这里的...
- cookie 存储 以站点为单位的。 必须配合服务器环境 不能跨浏览器 如何存数据? 什...
- 常量字符串的存储有一个字符串常量池,系统会开辟一块空间给常量字符串。 字面量赋值:系统会把常量字符串的地址给予栈区...