| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3607 人关注过本帖
标题:本人在学习C++类的时候遇到这个问题,这段代码执行不了总是有错误怎么破~
取消只看楼主 加入收藏
yuruilee
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-2-4
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:2 
本人在学习C++类的时候遇到这个问题,这段代码执行不了总是有错误怎么破~
#include<iostream>
#include<cstring>
using namespace std;
class Name
{public:
    Name(char*pn);
    Name(const Name &obj);
    ~Name();
    void setName(char *);
    void showName();
    protected:
    char *pName;
    long size;
};
Name::Name(char *pn)
{cout<<"Coustructing"<<pn<<endl;
    pName=new char[strlen(pn)+1];
    if(pName!=0) strcpy_s(pName,strlen(pn)+1,pn);
    size=strlen(pn);
}
Name::Name(const Name &obj)
{cout<<"copying"<<obj.pName<<"into its own block\n";
    pName=new char[strlen(obj.pName)+1];
    if(pName!=0)
        strcpy_s(pName,strlen(obj.pName)+1,obj.pName);
    size=obj.size;
}
Name::~Name()
{cout<<"Destructing"<<pName<<endl;
    pName[0]='\0';
    delete []pName;
    pName=NULL;
    size=0;
}
void Name::setName(char *pn)
{delete []pName;
    pName=new char[strlen(pn)+1];
    if(pName!=0) strcpy_s(pName,strlen(pn)+1,pn);
    size=strlen(pn);
}
void Name::showName()
{cout<<pName()<<endl;
}
int main()
{Name obj1("NoName");
    Name obj2=obj1;
    obj1.showName();
    obj2.showName();
    obj1.setName("sundondpo");
    obj2.setName("DuFu");
    obj1.showName();
    obj2.showName();
}
搜索更多相关主题的帖子: include public 
2015-02-04 18:44
yuruilee
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-2-4
收藏
得分:0 
回复 2楼 天使梦魔
没有那个括号,主要是strcpy出了问题,还有Name obj1("NoName")总是提示 ISO C++11 does not allow conversion from string literal to 'char *'
2015-02-04 19:51
yuruilee
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-2-4
收藏
得分:0 
回复 5楼 天使梦魔
谢谢,解决了
2015-02-04 23:23
快速回复:本人在学习C++类的时候遇到这个问题,这段代码执行不了总是有错误怎么 ...
数据加载中...
 
   



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

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