需要修改的有两个地方
第一构造函数这里:
Fu(int shibu,int xubu);
Fu(int shibu);
Fu();
你声明之后,后面没有定义~没有函数体~
下面是我修改的~你可以看看:
Fu(){shibu=0;xubu=0;};
Fu(int shi){shibu=shi;xubu=0;};
Fu(int shi,int xu){shibu=shi;xubu=xu;};
还有就是主函数:
d1=a+b; d1.output(const Fu&a);
d2=a-b; d2.output(const Fu&a);
d3=a*c; d3.output(const Fu&a);
d4=a/c; d4.output(const Fu&a);
d5=++a; d5.output(const Fu&a);
d6=--a; d6.output(const Fu&a);
调用output的时候只需要传入参数就可以了~实例化的时候类型可以删掉了~
可以修改成下面的
d1=a+b; d1.output(a);
d2=a-b; d2.output(a);
d3=a*c; d3.output(a);
d4=a/c; d4.output(a);
d5=++a; d5.output(a);
d6=--a; d6.output(a);
当然主函数最后还缺一个}
下面是我修改的
#include
#include
#include
class Fu
{
public:
friend Fu operator +(const Fu& a,const Fu&b);
friend Fu operator -(const Fu& a,const Fu&b);
friend Fu operator *(const Fu& a,const int&c);
friend Fu operator /(const Fu& a,const int&c);
friend Fu operator ++(Fu& a);
friend Fu operator --(Fu& a);
Fu(){shibu=0;xubu=0;};
Fu(int shi){shibu=shi;xubu=0;};
Fu(int shi,int xu){shibu=shi;xubu=xu;};
void output(const Fu& a);
private:
int shibu,xubu;
};
int main()
{
Fu a(5,1),b(1,2),d1,d2,d3,d4,d5,d6;
int c=2;
d1=a+b; d1.output(a);
d2=a-b; d2.output(a);
d3=a*c; d3.output(a);
d4=a/c; d4.output(a);
d5=++a; d5.output(a);
d6=--a; d6.output(a);
return 0;
}
Fu operator +(const Fu&a,const Fu&b)
{ Fu temp;
temp.shibu=a.shibu+b.shibu;
temp.xubu=a.xubu+b.xubu;
return temp;
}
Fu operator -(const Fu&a,const Fu&b)
{ Fu temp;
temp.shibu=a.shibu-b.shibu;
temp.xubu=a.xubu-b.xubu;
return temp;
}
Fu operator *(const Fu&a,const int&c)
{ Fu temp;
temp.shibu=a.shibu*c;
return temp;
}
Fu operator /(const Fu&a,const int&c)
{ Fu temp;
temp.shibu=a.shibu/c;
return temp;
}
Fu operator ++(Fu& a)
{ a.shibu++;
return a;
}
Fu operator --(Fu& a)
{ a.shibu--;
return a;
}
void Fu::output(const Fu&a)
{
cout<
类的成员函数的实现分为内部实现和外部实现。
内部实现
#include
#include
#include
class Fu
{
public:
friend Fu operator +(const Fu& a,const Fu&b)
{ Fu temp;
temp.shibu=a.shibu+b.shibu;
temp.xubu=a.xubu+b.xubu;
return temp;
}
friend Fu operator -(const Fu& a,const Fu&b)
{ Fu temp;
temp.shibu=a.shibu-b.shibu;
temp.xubu=a.xubu-b.xubu;
return temp;
}
friend Fu operator *(const Fu& a,const int&c)
{ Fu temp;
temp.shibu=a.shibu*c;
return temp;
}
friend Fu operator /(const Fu& a,const int&c)
{ Fu temp;
temp.shibu=a.shibu/c;
return temp;
}
friend Fu operator ++(Fu& a)
{ a.shibu++;
return a;
}
friend Fu operator --(Fu& a)
{ a.shibu--;
return a;
}
Fu(int shi,int xu)
{
shibu=shi;xubu=xu;
}
Fu(int shi)
{
shibu=shi;
}
Fu()
{
}
void output(const Fu&a)
{
cout<
private:
int shibu,xubu;
};
int main()
{
Fu a(5,1),b(1,2),d1,d2,d3,d4,d5,d6;
int c=2;
d1=a+b; d1.output(a);
d2=a-b; d2.output(a);
d3=a*c; d3.output(a);
d4=a/c; d4.output(a);
d5=++a; d5.output(a);
d6=--a; d6.output(a);
return 0;
}
外部实现
//不能在定义类的那个文件里进行。可以这样
//.h
Fu::Fu(int shi,int xu)
{
shibu=shi;xubu=xu;
}
Fu::Fu(int shi)
{
shibu=shi;
}
Fu::Fu()
{
}
Fu Fu::operator +(const Fu&a,const Fu&b)
{ Fu temp;
temp.shibu=a.shibu+b.shibu;
temp.xubu=a.xubu+b.xubu;
return temp;
}
Fu Fu::operator -(const Fu&a,const Fu&b)
{ Fu temp;
temp.shibu=a.shibu-b.shibu;
temp.xubu=a.xubu-b.xubu;
return temp;
}
Fu Fu::operator *(const Fu&a,const int&c)
{ Fu temp;
temp.shibu=a.shibu*c;
return temp;
}
Fu Fu::operator /(const Fu&a,const int&c)
{ Fu temp;
temp.shibu=a.shibu/c;
return temp;
}
Fu Fu::operator ++(Fu& a)
{ a.shibu++;
return a;
}
Fu Fu::operator --(Fu& a)
{ a.shibu--;
return a;
}
void Fu::output(const Fu&a)
{
cout<
//.cpp
#include"..."//包含上面那个.h文件
然后
#include
#include
#include
class Fu
{
public:
friend Fu operator +(const Fu& a,const Fu&b);
friend Fu operator -(const Fu& a,const Fu&b);
friend Fu operator *(const Fu& a,const int&c);
friend Fu operator /(const Fu& a,const int&c);
friend Fu operator ++(Fu& a);
friend Fu operator --(Fu& a);
Fu(int shibu,int xubu);
Fu(int shibu);
Fu();
void output(const Fu&a);
private:
int shibu,xubu;
};
int main()
{
Fu a(5,1),b(1,2),d1,d2,d3,d4,d5,d6;
int c=2;
d1=a+b; d1.output(a);
d2=a-b; d2.output(a);
d3=a*c; d3.output(a);
d4=a/c; d4.output(a);
d5=++a; d5.output(a);
d6=--a; d6.output(a);
return 0;
}