帮我看一下,这个类成员函数的返回值怎么说是void.?

azhou88 2013-10-05 11:50:18
#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();也是不对的。怎么回事啊?
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
猫仔- 2013-10-05
  • 打赏
  • 举报
回复
#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);类里面的方法要用类对象调用好不好!!
ryfdizuo 2013-10-05
  • 打赏
  • 举报
回复
mm one1(22,33); //构造函数mm(int, int) mm one2(33,11); // mm one3; //构造函数mm() one3 = swap(one1,one2);

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧