帮小弟我看一下,这个类成员函数的返回值如何说是void.
帮我看一下,这个类成员函数的返回值怎么说是void.?
#include <iostream>
using namespace std;
class mm
{
public:
mm()
{
cout<<"默认无参数构造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=0;b=0;
}
mm(int x)
{
cout<<"带一个参数造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=x;b=0;
}
mm(int x,int y)
{
cout<<"带二个参数造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=x;b=y;
}
~mm()
{
cout<<"析构函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
}
mm (const mm &st)
{
cout<<"复制构造函数"<<this<<endl;
cout<<"..............................."<<endl;
a=st.a;
b=st.b;
}
//调用了复制构造函数
mm swap( mm &v1,mm & v2)
{
if(v1.a>v2.a)
return v1;
else
return v2;
}
mm operator =(const mm & st)
{
a=st.a;
b=st.b;
return *this;
}
private:
int a;
int b;
};
int main()
{
mm one1=mm(22,33);
mm one2=mm(33,11);
mm one3;
one3=swap(one1,one2); //问题处在这句?怎回事情。
return 0;
}
直接mm one3=swap();也是不对的。怎么回事啊?
------解决方案--------------------
one3=one3.swap(one1,one2);类里面的方法要用类对象调用好不好!!
#include <iostream>
using namespace std;
class mm
{
public:
mm()
{
cout<<"默认无参数构造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=0;b=0;
}
mm(int x)
{
cout<<"带一个参数造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=x;b=0;
}
mm(int x,int y)
{
cout<<"带二个参数造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=x;b=y;
}
~mm()
{
cout<<"析构函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
}
mm (const mm &st)
{
cout<<"复制构造函数"<<this<<endl;
cout<<"..............................."<<endl;
a=st.a;
b=st.b;
}
//调用了复制构造函数
mm swap( mm &v1,mm & v2)
{
if(v1.a>v2.a)
return v1;
else
return v2;
}
mm operator =(const mm & st)
{
a=st.a;
b=st.b;
return *this;
}
private:
int a;
int b;
};
int main()
{
mm one1=mm(22,33);
mm one2=mm(33,11);
mm one3;
one3=swap(one1,one2); //问题处在这句?怎回事情。
return 0;
}
直接mm one3=swap();也是不对的。怎么回事啊?
------解决方案--------------------
#include <iostream>
using namespace std;
class mm
{
public:
mm()
{
cout<<"默认无参数构造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=0;b=0;
}
mm(int x)
{
cout<<"带一个参数造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=x;b=0;
}
mm(int x,int y)
{
cout<<"带二个参数造函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
a=x;b=y;
}
~mm()
{
cout<<"析构函数执行了"<<this<<endl;
cout<<"..............................."<<endl;
}
mm (const mm &st)
{
cout<<"复制构造函数"<<this<<endl;
cout<<"..............................."<<endl;
a=st.a;
b=st.b;
}
//调用了复制构造函数
mm swap( mm &v1,mm & v2)
{
if(v1.a>v2.a)
return v1;
else
return v2;
}
mm operator =(const mm & st)
{
this->a=st.a;
this->b=st.b;
return *this;
}
private:
int a;
int b;
};
int main()
{
mm one1=mm(22,33);
mm one2=mm(33,11);
mm one3;
one3=one3.swap(one1,one2); //问题处在这句?怎回事情。
system("pause");
return 0;
}
one3=one3.swap(one1,one2);类里面的方法要用类对象调用好不好!!