| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 853 人关注过本帖
标题:####请高手帮忙看看###
只看楼主 加入收藏
wycstc100
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2010-5-11
收藏
 问题点数:0 回复次数:0 
####请高手帮忙看看###
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
class string1
{ private:  int len;
            char *p;
public: string1(char *q ) {len=strlen(q)+1;p=new char(len);strcpy(p,q);}
        string1(){}
        string1(string1 &s) { len=s.len; p=new char(s.len);strcpy(p,s.p);}
        string1 operator =(string1 &str);
        string1 operator +(string1 str);
        string1 operator + (char* str);
        
        void display() {cout<<p<<endl;}
};
string1 string1::operator + (string1 str)
{  len=str.len;
    strcat(p,str.p);
     return *this;}
string1 string1::operator + (char* str)
{   
    strcat(p,str);
     return *this;}
string1 string1::operator =(string1 &str)
{if(this!=&str)
{ len=str.len ;
   delete []p;
   p=new char[len+1];
    strcpy(p,str.p);
}
return *this;
}
int main(int argc, char* argv[])
{   
    string1 str1("abc"),str2("edf"),str3,str4,str5;
   
    str3=str1+"sdsd";
    str4=str1+str2;
    str5=str1;
     str3.display();
    str4.display();
    str5.display();
    return 0;
}


在delete【】p;删除后就可以这是什么原因
2010-05-23 14:33
快速回复:####请高手帮忙看看###
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032988 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved