首页
社区
课程
招聘
[旧帖] [求助]c++ mfc 等号重载的问题 0.00雪花
发表于: 2012-3-17 01:57 1382

[旧帖] [求助]c++ mfc 等号重载的问题 0.00雪花

2012-3-17 01:57
1382
用CString可以直接这样定义对象: CString str="hello,world!";
但是用自己的类重载等号却不能直接赋值。代码如下:
class MString
{
public:
        char buf[100];
        const MString & operator=(const char *str)
        {
                strcpy(buf,str);
                return *this;
        }
};
void CTestDlg::OnBtnTest()
{
        // TODO: Add your control notification handler code here
        MString mstr="error"; //用自己的类就不行
        CString cstr="ok";      //CString的就可以
}
MFC的源代码和我这个差不多,怎么才能实现像CString这样的功能?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 615
活跃值: (172)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
要么你MString mstr;
mstr="error";
要么写构造函数MString(const char *sz= "");
然后就可以直接MString mstr="error"; 这么使用了

另外你的代码写的右很多问题,
buf[100]={0}初始化一下吧
strcpy(buf,str); 存在溢出漏洞
2012-3-17 02:42
0
雪    币: 4
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=小覃;1054065]要么你MString mstr;
mstr="error";
要么写构造函数MString(const char *sz= "");
然后就可以直接MString mstr="error"; 这么使用了

另外你的代码写的右很多问题,
buf[100]={0}初始化一下吧
strcpy...[/QUOTE]

问题解决了。
确实应该初始化,非常感谢!
2012-3-17 08:35
0
游客
登录 | 注册 方可回帖
返回
//