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版写的 |