有人可以向我解释(*this)指针并演示它如何被用作调用同一类的另一个对象的对象.我不明白的是你如何在同一个变量名的不同2个不同对象的成员函数中引用两个数字.例如,乘以两个数字.
a.Multiply(b);
//....
Numbers::Numbers Multiply(Numbers auggend)
{
}
Run Code Online (Sandbox Code Playgroud) 我试图使用operator <,>方法运行一个带有模板的程序,我得到一个编译器错误告诉我"从这里实例化"并且不能转换为Temps<double>' to双重',当我调用运算符函数时问题开始了代码..
template <class T>
class Temps
{
private:
T a;
public:
Temps()
{
}
Temps(T b)
{
a=b;
}
T operator<(Temps c)
{
if (a < c.a)
{
return *this;
}
return c;
}
T operator>(Temps c)
{
if (a > c.a)
{
return *this;
}
return c;
}
};
int main()
{
double d1 = -9.002515,d2=98.321,d3=1.024;
Temps<double>mag(d1);
Temps<double>lag(d3);
Temps<double>tag;
tag=mag < lag;
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud) 任何人都可以向我解释为什么我得到一个".exe遇到问题并需要关闭"错误,它有时编译和工作当我摆弄char数组,但当它工作时我有时会得到奇怪的字符在结束时串.
#include <iostream>
using namespace std;
char* StrReverse3(char*);
char* StrReverse3(char* str)
{
char *p;
int length=0,start=0,end=0;
length=strlen(str);
for(start=0,end=length-1;end>= 0,start<=length-1;end--,start++)
{
p[start]=str[end];
}
return p;
}
int main()
{
char str[100]="Saw my reflection in snow covered hills";
StrReverse3(str);
cin.get();
return 0;
}
Run Code Online (Sandbox Code Playgroud)