Board logo

标题: Visual c++游戏开发案例实战这一书中,有个问题想问一问。 [打印本页]

作者: hlz6330108    时间: 2018-6-11 10:35     标题: Visual c++游戏开发案例实战这一书中,有个问题想问一问。

在这一书中,82页的代码3.19中,出现很多错误。

#include <iostream>
#include <cstring>        //字符数组的函数定义的头文件,在使用到字符数组时需要使用。
using namespace std;

class CString        //声明CString类
{
public:
        CString();        //默认构造函数
        CString(char *pStr);
        char *getStr();
        CString operator + (CString &t);        //重载操作符+
private:
        char str[128];
};

CString::CString()        //初始化默认构造函数
{
        str[0] = '\0';
}

CString::CString(char *pStr)        //带参数的构造函数
{
        strcpy(str, pStr);
}

char *CString::getStr()       
{
        return str;
}

CString CString::operator + (CString &t)        //操作符重载的实现
{
        CString tmp;
        strcat(str, t.str);        //把当前对象的字符串和参数的字符相加
        strcat(tmp.str, str);
        return tmp;        //返回临时对象
}

void main()
{
        CString str1("this is ");
        CString str2("operator overload!");
        CString str3;
        str3 = str1 + str2;        //调用重载后的操作符“+”,实现字符串相加
        cout << str3.getStr() << endl;
}

代码如上,出错的地方有后面的
        CString str1("this is ");
        CString str2("operator overload!");
这二行,请教一下为什么会出错,如何改正。

代码在Microsoft visual studio 2017版写的
作者: fwbook    时间: 2018-6-12 09:06

建议发完整的错误信息。
作者: hlz6330108    时间: 2018-6-13 09:49

错误(活动)        E0289  没有与参数列表匹配的构造函数 "CString::CString" 实例       
错误(活动)        E0289  没有与参数列表匹配的构造函数 "CString::CString" 实例       
错误        C2664  “CString::CString(CString &&)”: 无法将参数 1 从“const char [9]”转换为“char *”       
错误        C2664  “CString::CString(CString &&)”: 无法将参数 1 从“const char [19]”转换为“char *”

这个是出错信息。请帮看看是为什么错
作者: fwbook    时间: 2018-6-14 08:54

看提示,是类型不一致。
作者: hlz6330108    时间: 2018-6-14 15:55

回复 4# fwbook


    怎么样修改代码?
请教一下,想不明白了。




欢迎光临 万卷图书 (http://wanjuanchina.net/) Powered by Discuz! 7.0.0